Take full control of your personal photo and video collection with this powerful, self-hosted management solution. Create a secure and private library on your own server, ensuring your precious memories are never in the hands of a third party. It provides a beautiful and intuitive interface to browse, search, and organize your entire media collection.
Key capabilities include:
name: immich
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:release
volumes:
- ./immich-data:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- 2283:2283
depends_on:
- redis
- database
restart: always
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:release
volumes:
- ./immich-data/model-cache:/cache
env_file:
- .env
restart: always
redis:
container_name: immich_redis
image: docker.io/redis:6.2-alpine@sha256:e3b17ba9479deec4b7d1eeec1548a253acc5374d68d3b27937fcfe4df8d18c7e
healthcheck:
test: redis-cli ping || exit 1
restart: always
database:
container_name: immich_postgres
image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes:
- ./postgres-data:/var/lib/postgresql/data
healthcheck:
test: pg_isready -dbname='${DB_DATABASE_NAME}' -U '${DB_USERNAME}' || exit 1; Chksum="$$(psql -dbname='${DB_DATABASE_NAME}' -U '${DB_USERNAME}' -t -c 'SELECT setting FROM pg_settings WHERE name = ''data_checksums'';')"; if [ "$$Chksum" = "on" ]; then exit 0; else exit 1; fi
interval: 5m
start_interval: 30s
start_period: 5m
command: ["postgres", "-c", "shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
restart: alwaysDB_PASSWORD=your_super_secret_password
DB_USERNAME=postgres
DB_DATABASE_NAME=immichAuto-fetched about 19 hours ago
Auto-fetched about 19 hours ago