diff --git a/arkindex/project/checks.py b/arkindex/project/checks.py
index 2bc2041d97da6c544d370fa0ec40aaa4ae4199f6..49f8e43cac7b17dd8ab72661f06d2b30f5f98a32 100644
--- a/arkindex/project/checks.py
+++ b/arkindex/project/checks.py
@@ -1,5 +1,4 @@
 import os.path
-import subprocess
 
 import yaml
 from django.core.checks import Error, Warning, register
@@ -44,56 +43,18 @@ def local_imageserver_check(*args, **kwargs):
     """
     from django.conf import settings
     from arkindex.images.models import ImageServer
-    errors = []
     local_id = settings.LOCAL_IMAGESERVER_ID
 
     try:
         ImageServer.objects.get(id=local_id)
     except ImageServer.DoesNotExist:
-        errors.append(Error(
-            'Local ImageServer with ID {} does not exist'.format(local_id),
-            hint='settings.LOCAL_IMAGESERVER_ID = {}'.format(local_id),
-            id='arkindex.E004',
-        ))
-
-    return errors
-
-
-@register()
-def docker_images_check(*args, **kwargs):
-    """
-    Check that the Arkindex backend and ML images exist
-    """
-    from django.conf import settings
-    errors = []
-
-    if settings.PONOS_RECIPE is None:
-        # In a Ponos task
-        return []
-
-    images = (
-        (settings.ARKINDEX_TASKS_IMAGE, 'ARKINDEX_TASKS_IMAGE'),
-    )
-    for image_tag, setting_name in images:
-        try:
-            subprocess.run(
-                ['docker', 'image', 'inspect', image_tag],
-                check=True,
-                # Silent output
-                stdout=subprocess.PIPE,
-                stderr=subprocess.STDOUT,
-            )
-        except subprocess.CalledProcessError:
-            errors.append(Error(
-                'Docker image with tag "{}" was not found.'.format(image_tag),
-                hint='settings.{} = "{}"'.format(setting_name, image_tag),
-                id='arkindex.E006',
-            ))
-        except FileNotFoundError:
-            # Docker is not available, ignore check
-            pass
+        return [Warning(
+            f'Local ImageServer with ID {local_id} does not exist',
+            hint=f'settings.LOCAL_IMAGESERVER_ID = {local_id}',
+            id='arkindex.W009',
+        )]
 
-    return errors
+    return []
 
 
 @register()
@@ -176,14 +137,15 @@ def s3_check(*args, **kwargs):
         'AWS_SECRET_KEY': 'AWS secret key',
         'AWS_THUMBNAIL_BUCKET': 'S3 thumbnails bucket name',
         'AWS_STAGING_BUCKET': 'S3 staging bucket name',
+        'AWS_EXPORT_BUCKET': 'S3 export bucket name',
     }
     errors = []
     for name, display_name in aws_settings.items():
         value = getattr(settings, name, None)
         if not value:
             errors.append(Error(
-                '{} is missing; all S3-related features will fail.'.format(display_name),
-                hint='settings.{} = {}'.format(name, repr(value)),
+                f'{display_name} is missing; all S3-related features will fail.',
+                hint=f'settings.{name} = {value!r}',
                 id='arkindex.E011',
             ))
 
@@ -198,6 +160,6 @@ def public_hostname_check(*args, **kwargs):
         return [Warning(
             'The public_hostname setting is missing; absolute URLs may not be correctly generated.',
             hint='settings.PUBLIC_HOSTNAME',
-            id='arkindex.W007',
+            id='arkindex.W008',
         )]
     return []
diff --git a/arkindex/project/tests/test_checks.py b/arkindex/project/tests/test_checks.py
index d3a9bc24fd2b04177bb250dc8bf297caf321d28b..eacd5768cad889cfce47e64f1904a4b39cdbb0c2 100644
--- a/arkindex/project/tests/test_checks.py
+++ b/arkindex/project/tests/test_checks.py
@@ -1,7 +1,5 @@
-import subprocess
 from pathlib import Path
-from subprocess import CalledProcessError
-from unittest.mock import call, patch
+from unittest.mock import patch
 
 from django.conf import settings
 from django.core.checks import Error, Warning
@@ -47,10 +45,10 @@ class ChecksTestCase(TestCase):
 
         with self.settings(LOCAL_IMAGESERVER_ID=42):
             self.assertListEqual(local_imageserver_check(), [
-                Error(
+                Warning(
                     'Local ImageServer with ID 42 does not exist',
                     hint='settings.LOCAL_IMAGESERVER_ID = 42',
-                    id='arkindex.E004',
+                    id='arkindex.W009',
                 ),
             ])
 
@@ -61,55 +59,6 @@ class ChecksTestCase(TestCase):
 
         srv.delete()
 
-    @patch('arkindex.project.checks.subprocess.run')
-    @override_settings(
-        ARKINDEX_TASKS_IMAGE='nuh',
-    )
-    def test_docker_images_check(self, run_mock):
-        from arkindex.project.checks import docker_images_check
-
-        expected_calls = [
-            call(
-                ['docker', 'image', 'inspect', 'nuh'],
-                stdout=subprocess.PIPE,
-                stderr=subprocess.STDOUT,
-                check=True,
-            ),
-        ]
-
-        run_mock.side_effect = CalledProcessError(1, '')
-        self.assertListEqual(docker_images_check(), [
-            Error(
-                'Docker image with tag "nuh" was not found.',
-                hint='settings.ARKINDEX_TASKS_IMAGE = "nuh"',
-                id='arkindex.E006',
-            )
-        ])
-
-        self.assertEqual(run_mock.call_count, 1)
-        self.assertEqual(run_mock.call_args_list, expected_calls)
-
-    @patch('arkindex.project.checks.subprocess.run')
-    def test_docker_images_check_missing_client(self, run_mock):
-        """
-        Test the Docker images check does not show errors if the Docker client is missing
-        """
-        from arkindex.project.checks import docker_images_check
-
-        run_mock.side_effect = FileNotFoundError
-        with self.settings(ARKINDEX_APP_IMAGE='nope', ARKINDEX_TASKS_IMAGE='nuh'):
-            self.assertListEqual(docker_images_check(), [])
-
-        self.assertEqual(run_mock.call_count, 1)
-        self.assertEqual(run_mock.call_args_list, [
-            call(
-                ['docker', 'image', 'inspect', 'nuh'],
-                stdout=subprocess.PIPE,
-                stderr=subprocess.STDOUT,
-                check=True,
-            ),
-        ])
-
     @override_settings()
     @patch('arkindex.project.checks.parse_recipe')
     def test_ponos_recipe_check(self, parse_mock):
@@ -180,6 +129,7 @@ class ChecksTestCase(TestCase):
         del settings.AWS_SECRET_KEY
         del settings.AWS_THUMBNAIL_BUCKET
         del settings.AWS_STAGING_BUCKET
+        del settings.AWS_EXPORT_BUCKET
         self.assertCountEqual(s3_check(), [
             Error(
                 'AWS access key ID is missing; all S3-related features will fail.',
@@ -201,12 +151,18 @@ class ChecksTestCase(TestCase):
                 hint='settings.AWS_STAGING_BUCKET = None',
                 id='arkindex.E011',
             ),
+            Error(
+                'S3 export bucket name is missing; all S3-related features will fail.',
+                hint='settings.AWS_EXPORT_BUCKET = None',
+                id='arkindex.E011',
+            ),
         ])
 
         settings.AWS_ACCESS_KEY = 'key'
         settings.AWS_SECRET_KEY = 's3kr3t'
         settings.AWS_THUMBNAIL_BUCKET = 'Thumbs.db'
         settings.AWS_STAGING_BUCKET = 'buckette'
+        settings.AWS_EXPORT_BUCKET = 'devnull'
         self.assertListEqual(s3_check(), [])
 
     @override_settings()
@@ -218,7 +174,7 @@ class ChecksTestCase(TestCase):
             Warning(
                 'The public_hostname setting is missing; absolute URLs may not be correctly generated.',
                 hint='settings.PUBLIC_HOSTNAME',
-                id='arkindex.W007',
+                id='arkindex.W008',
             )
         ])