diff --git a/docker-compose.yml b/docker-compose.yml
index fa238bc7ca2b9357f5228841beae6548c415c35a..bcea88b521c3a85f68a80d45c88233f576cee1b4 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -39,7 +39,7 @@ services:
       CANTALOUPE_S3SOURCE_SECRET_KEY: ${AWS_SECRET_ACCESS_KEY}
       CANTALOUPE_S3SOURCE_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
       CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_BUCKET_NAME: ${AWS_STORAGE_BUCKET_NAME}
-      CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_PATH_PREFIX: ""
+      CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_PATH_PREFIX: "iiif/"
       CANTALOUPE_S3SOURCE_ENDPOINT: "https://s3.unistra.fr"
 
   kibana:
diff --git a/poetry.lock b/poetry.lock
index c2a6ff027e66763f3370377cbddc5c0cac6dc03e..9cf9875b1661f2fd23165737270bee317b5713d9 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -867,6 +867,24 @@ redis = ">=3,<4.0.0 || >4.0.0,<4.0.1 || >4.0.1"
 [package.extras]
 hiredis = ["redis[hiredis] (>=3,!=4.0.0,!=4.0.1)"]
 
+[[package]]
+name = "django-revproxy"
+version = "0.13.0"
+description = "Yet another Django reverse proxy application"
+optional = false
+python-versions = ">=3.7"
+files = [
+    {file = "django_revproxy-0.13.0-py3-none-any.whl", hash = "sha256:6130d52d5042624c918134369be0a825e9f7e87d15e12b739d6666e5ed1f32ef"},
+]
+
+[package.dependencies]
+Django = ">=3.0"
+urllib3 = ">=1.12"
+
+[package.extras]
+diazo = ["diazo (>=1.0.5)", "lxml (>=3.4)"]
+tests = ["coverage", "diazo", "flake8", "lxml (>=3.4)"]
+
 [[package]]
 name = "django-rich"
 version = "1.13.0"
@@ -2624,4 +2642,4 @@ files = [
 [metadata]
 lock-version = "2.0"
 python-versions = "~3.9"
-content-hash = "be750ea57e28eaf53d9182a915f65e78b7475c24c0463394f24c572724cc624f"
+content-hash = "11f98c82e7582d4ec57e51ddb0c7abede4b73e0414974959150f9ff457649c58"
diff --git a/pount/apps/iiif/__init__.py b/pount/apps/iiif/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/pount/apps/iiif/apps.py b/pount/apps/iiif/apps.py
new file mode 100644
index 0000000000000000000000000000000000000000..08c5b2d62d20ff0e24139619bbb08e0a4fbf1607
--- /dev/null
+++ b/pount/apps/iiif/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class IiifAppConfig(AppConfig):
+    name = "pount.apps.iiif"
diff --git a/pount/apps/iiif/urls.py b/pount/apps/iiif/urls.py
new file mode 100644
index 0000000000000000000000000000000000000000..f8e01e4e8f90041f991916e0cc9eab454862cb50
--- /dev/null
+++ b/pount/apps/iiif/urls.py
@@ -0,0 +1,10 @@
+from django.urls import re_path
+
+from pount.apps.iiif import views
+
+app_name = "iiif"
+
+
+urlpatterns = [
+    re_path(r"(?P<path>.*)", views.TestProxyView.as_view()),
+]
diff --git a/pount/apps/iiif/views.py b/pount/apps/iiif/views.py
new file mode 100644
index 0000000000000000000000000000000000000000..9915b6cc045f4473b7ad51a6435721d37da708f2
--- /dev/null
+++ b/pount/apps/iiif/views.py
@@ -0,0 +1,20 @@
+from os import environ
+
+from django.contrib.auth import get_user_model
+from revproxy.views import ProxyView
+
+User = get_user_model()
+
+
+# class TestProxyView(LoginRequiredMixin, ProxyView):
+class TestProxyView(ProxyView):
+    upstream = environ.get("IIIF_UPSTREAM_URL", "http://localhost:8182/iiif/")
+    add_x_forwarded = True
+
+    def dispatch(self, request, *args, **kwargs):
+        # for k in request.META.keys():
+        #    print(k)
+        # print(request.user)
+        # print(args)
+        # print(kwargs)
+        return super().dispatch(request, *args, **kwargs)
diff --git a/pount/settings/common.py b/pount/settings/common.py
index 6f0611a3518a28215b476b45a76804b9395cd581..dc19a24404a38e33314ce5db566fb283affd3111 100644
--- a/pount/settings/common.py
+++ b/pount/settings/common.py
@@ -329,6 +329,7 @@ THIRD_PARTY_APPS = [
     "health_check.db",
     "health_check.contrib.s3boto3_storage",
     "health_check.contrib.rabbitmq",
+    "revproxy.apps.RevProxyConfig",
 ]
 
 LOCAL_APPS = [
diff --git a/pount/urls.py b/pount/urls.py
index 5db554e8828412aa2b7e807deeda4c69aa8a5000..b1efcd2573ba7ac7c2c5c6c33bd6ec2d7919e66c 100644
--- a/pount/urls.py
+++ b/pount/urls.py
@@ -15,6 +15,7 @@ urlpatterns = [
     path("cas/", include("django_cas.urls")),
     path("admin/", admin.site.urls),
     path("_hc/", HealthCheckView.as_view()),
+    path("iiif/", include("pount.apps.iiif.urls")),
 ]
 
 if settings.DEBUG and "debug_toolbar" in settings.INSTALLED_APPS:
diff --git a/pyproject.toml b/pyproject.toml
index 8faae89640d7cd3ac5dc8d37b4ca875eb493c167..45d36f4b91fd2770249e9334f1fce714ae504d02 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -42,6 +42,7 @@ django-filter = "^23.3"
 django-health-check = "3.17.0"
 django-notifications-hq = "^1.8.0"
 django-redis = "^5.4.0"
+django-revproxy = "^0.13.0"
 django-rich = "^1.8.0"
 django-storages = "^1.14.2"
 django-stubs = "^4.2"