Immich-server with AWS S3 Object Storage Support
7.5K
Immich can store all Immich‑managed media (originals, thumbnails, generated videos, backups) in S3‑compatible object storage instead of the local /data volume. This is useful when you want durable, scalable storage and/or to decouple storage from the server host.
s3 and providing S3 details via environment variables.local. No data is deleted automatically; you control what to keep/clean up.Required variables (see example.env for full list):
IMMICH_STORAGE_ENGINE=s3S3_BUCKET=<your-bucket>S3_REGION=us-east-1S3_PREFIX=<optional/path/prefix> (folder under the bucket)S3_ENDPOINT=http://minio:9000 and S3_FORCE_PATH_STYLE=true for MinIO or path‑style endpointsS3_ACCESS_KEY_IDS3_SECRET_ACCESS_KEY (or use IAM)S3_USE_ACCELERATE=false (AWS Transfer Acceleration, only if enabled on the bucket)S3_SSES3_SSE_KMS_KEY_ID for server‑side encryptionNotes:
IMMICH_MEDIA_LOCATION when using S3. Immich derives s3://<bucket>/<optional-prefix> automatically.s3, the /data bind mount is optional/unused by the server.This method copies existing local data to S3 using the AWS CLI and then switches Immich to S3. It reduces downtime by performing a bulk copy while Immich remains operational, followed by a quick cut-over. This is also a good opportunity to run a database dump backup in case you need to restore it.
UPLOAD_LOCATION folder mounted to the server container as /data).--delete on the first pass.aws s3 sync /path/to/upload s3://<bucket>/<optional-prefix>/
--delete if you want a strict mirror.aws s3 sync /path/to/upload s3://<bucket>/<optional-prefix>/ [--delete]
s3://<bucket>/<optional-prefix>.aws s3 ls s3://<bucket>/<optional-prefix>/backups/
UPLOAD_LOCATION.When S3 is enabled, the automatic “Create Database Dump” job writes .sql.gz backups under:
s3://<bucket>/<optional-prefix>/backups/
Immich handles listing, retention, and cleanup in that prefix.
S3_ENDPOINT to the HTTP(S) URL and S3_FORCE_PATH_STYLE=true.S3_USE_ACCELERATE.IMMICH_STORAGE_ENGINE=local and restart. Immich will continue to use your local /data volume. If needed, you can sync back from S3 using aws s3 sync s3://<bucket>/<optional-prefix>/ /path/to/upload before switching.Content type
Image
Digest
sha256:419ebeaed…
Size
460.5 MB
Last updated
2 months ago
docker pull enarciso/immich-server