services: immich-server: image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} container_name: immich-server restart: unless-stopped labels: - "com.centurylinklabs.watchtower.enable=true" ports: - "0.0.0.0:2283:2283" volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - /volume1/photo:/mnt/photo:ro - /volume1/homes/zjgump/Photos:/mnt/synology-photos:ro - /etc/localtime:/etc/localtime:ro environment: DB_HOSTNAME: immich-db DB_USERNAME: ${DB_USERNAME} DB_PASSWORD: ${DB_PASSWORD} DB_DATABASE_NAME: ${DB_DATABASE_NAME} REDIS_HOSTNAME: immich-redis IMMICH_MACHINE_LEARNING_URL: http://immich-machine-learning:3003 healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:2283/api/server/ping || exit 1"] interval: 30s timeout: 5s retries: 3 depends_on: - immich-redis - immich-db networks: - immich logging: driver: json-file options: max-size: "10m" max-file: "3" immich-redis: image: redis:7-alpine container_name: immich-redis restart: unless-stopped labels: - "com.centurylinklabs.watchtower.enable=true" healthcheck: test: redis-cli ping || exit 1 networks: - immich logging: driver: json-file options: max-size: "10m" max-file: "3" immich-db: image: tensorchord/pgvecto-rs:pg16-v0.2.0 container_name: immich-db restart: unless-stopped labels: - "com.centurylinklabs.watchtower.enable=true" environment: POSTGRES_USER: ${DB_USERNAME} POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: "--data-checksums" volumes: - ${DB_DATA_LOCATION}:/var/lib/postgresql/data healthcheck: test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1 interval: 30s timeout: 5s retries: 5 networks: - immich logging: driver: json-file options: max-size: "10m" max-file: "3" immich-machine-learning: image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} container_name: immich-machine-learning restart: unless-stopped labels: - "com.centurylinklabs.watchtower.enable=true" volumes: - /volume1/docker/immich/model-cache:/cache environment: - MACHINE_LEARNING_CACHE_FOLDER=/cache - MACHINE_LEARNING_REQUEST_TIMEOUT=600 - MACHINE_LEARNING_MODEL_TTL=300 - MACHINE_LEARNING_MODEL_TTL_POLL_S=10 - HTTP_PROXY=http://192.168.1.173:7890 - HTTPS_PROXY=http://192.168.1.173:7890 - NO_PROXY=localhost,127.0.0.1,immich-server,immich-db,immich-redis deploy: resources: limits: memory: 6G networks: - immich logging: driver: json-file options: max-size: "10m" max-file: "3" networks: immich: