diff --git a/.docker/app/Dockerfile b/.docker/app/Dockerfile
index 3d3ad4fd83e15fb6d2871e81dd13b06d65914b8c..3cd2cecfbc4e14fdbd92d71329a06d41b22b23d6 100644
--- a/.docker/app/Dockerfile
+++ b/.docker/app/Dockerfile
@@ -65,6 +65,9 @@ RUN git clone --depth=1 ${ORIGIN_REPO_SMTP} ${SRC_DIR}/plugins.local/mailer_smtp
 ARG ORIGIN_REPO_MASTODON=https://framagit.org/framasoft/ttrss/ttrss_mastodon.git
 RUN git clone --depth=1 ${ORIGIN_REPO_MASTODON} ${SRC_DIR}/plugins.local/mastodon
 
+ARG ORIGIN_REPO_CACHE_S3=https://git.tt-rss.org/fox/ttrss-cache-s3.git
+RUN git clone --depth=1 ${ORIGIN_REPO_CACHE_S3} ${SRC_DIR}/plugins.local/cache_s3
+
 ENV OWNER_UID=1000
 ENV OWNER_GID=1000
 
@@ -103,6 +106,6 @@ ENV TTRSS_DB_PORT="5432"
 
 ENV TTRSS_MYSQL_CHARSET="UTF8"
 ENV TTRSS_PHP_EXECUTABLE="/usr/bin/php83"
-ENV TTRSS_PLUGINS="auth_internal, note, nginx_xaccel, mailer_smtp, data_migration"
+ENV TTRSS_PLUGINS="cache_s3, auth_internal, note, nginx_xaccel, mailer_smtp, data_migration"
 
 CMD ${SCRIPT_ROOT}/startup.sh
diff --git a/.docker/app/startup.sh b/.docker/app/startup.sh
index 6063d9281aebcdbe054c2357a81bb4bba6f891c8..a8e3c3facd1cef23cdb450a84cecba8d5f54c8ac 100644
--- a/.docker/app/startup.sh
+++ b/.docker/app/startup.sh
@@ -60,6 +60,10 @@ if [ -z $SKIP_RSYNC_ON_STARTUP ]; then
 		sudo -u app rsync -a --no-owner --delete \
 			$SRC_DIR/plugins.local/data_migration \
 			$DST_DIR/plugins.local/data_migration
+
+		sudo -u app rsync -a --no-owner --delete \
+			$SRC_DIR/plugins.local/cache_s3 \
+			$DST_DIR/plugins.local/cache_s3
 	fi
 else
 	echo "warning: working copy in $DST_DIR won't be updated, make sure you know what you're doing."