
Deploy Immich on Your Own Server
Open source (AGPLv3) Google Photos alternative. Backup your phone's photos and videos to your private server.
Want to deploy Immich on your server faster? Try Senate with one-command setup, automatic HTTPS and monitoring.
What is Immich?
Leave every default value as is for a working and simple installation. You can specify the (full) path to the directory you want to save your media at. The directory must exist beforehand. Immich can be used from a browser but kind of requires you to install the Immich app on your phone. If you have big media files (bigger than 500MB) that you want to backup, update your Nginx configuration file in Senate to increase your `client_max_body_size`.
Self-Host Immich
Follow these steps to deploy on your own server.
Install Docker
Skip this step if Docker is already installed on your server.
curl -fsSL https://get.docker.com | sh
Configure
Customize the settings below. Defaults work for most cases.
Deploy
Copy the configuration and run it on your server.
services:
immich:
environment:
DB_DATABASE_NAME: immich
DB_HOSTNAME: immich-db
DB_PASSWORD: c788cda71c93d7ae65e1fc53058eab21
DB_USERNAME: immich
IMMICH_MACHINE_LEARNING_URL: http://immich-machine-learning:3003
REDIS_HOSTNAME: immich-redis
UPLOAD_LOCATION: immich-data
volumes:
- immich-data:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
depends_on:
- immich-redis
- immich-db
immich-db:
image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
environment:
PG_DATA: /var/lib/postgresql/data
POSTGRES_DB: immich
POSTGRES_PASSWORD: c788cda71c93d7ae65e1fc53058eab21
POSTGRES_USER: immich
volumes:
- immich-db-data:/var/lib/postgresql/data
immich-machine-learning:
image: ghcr.io/immich-app/immich-machine-learning:v1.108.0
environment:
DB_DATABASE_NAME: immich
DB_HOSTNAME: immich-db
DB_PASSWORD: c788cda71c93d7ae65e1fc53058eab21
DB_USERNAME: immich
REDIS_HOSTNAME: immich-redis
UPLOAD_LOCATION: immich-data
volumes:
- immich-model-cache:/cache
immich-redis:
image: redis:6.2-alpine@sha256:c5a607fb6e1bb15d32bbcf14db22787d19e428d59e31a5da67511b49bb0f1ccc
volumes:
immich-data: {}
immich-db-data: {}
immich-model-cache: {}
Then run:
docker compose up -d
Access
Once started, access your app at http://localhost:3001
Why Self-Host Immich?
Full Data Ownership
Your data stays on your servers. No third-party access.
No Monthly Fees
Pay only for your server. No per-seat or usage charges.
Complete Control
Customize, backup, and scale on your own terms.
Privacy & Compliance
Meet GDPR, HIPAA, or internal security requirements.
Technical Details
Want to go faster?
Try Senate! Senate handles Docker, HTTPS, updates, and monitoring for you. Deploy any of our 300+ apps with a single command.
Install on any Linux server:
sh -c "$(curl -sSL https://get.senate.sh)"