--- version: "3.8" services: app: image: ghcr.io/immich-app/immich-server:v2.5.6 volumes: - uploads:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro environment: - TZ - IMMICH_VERSION - DB_PASSWORD_FILE=/run/secrets/db_password - DB_USERNAME - DB_DATABASE_NAME secrets: - db_password networks: - proxy - backend healthcheck: disable: false depends_on: - redis - database deploy: labels: - "traefik.enable=true" - "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=2283" - "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`${EXTRA_DOMAINS})" - "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure" - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" - "coop-cloud.${STACK_NAME}.version=1.3.0+v2.4.1" - "backupbot.backup=${ENABLE_BACKUPS:-true}" - "backupbot.volumes.model-cache=false" - "backupbot.volumes.uploads=false" - "backupbot.volumes.external_storage=false" immich-machine-learning: # TODO: this has to be that name, as the frontend tries to reach it at: http://immich-machine-learning:3003 image: ghcr.io/immich-app/immich-machine-learning:v2.5.6 volumes: - model-cache:/cache networks: - backend healthcheck: disable: false redis: image: docker.io/valkey/valkey:9@sha256:fb8d272e529ea567b9bf1302245796f21a2672b8368ca3fcb938ac334e613c8f healthcheck: test: redis-cli ping || exit 1 networks: - backend database: image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23 environment: POSTGRES_PASSWORD_FILE: /run/secrets/db_password POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' DB_STORAGE_TYPE: ${DB_STORAGE_TYPE:-SSD} secrets: - db_password volumes: - postgres:/var/lib/postgresql/data networks: - backend secrets: db_password: external: true name: ${STACK_NAME}_db_password_${SECRET_DB_PASSWORD_VERSION} networks: proxy: external: true backend: volumes: uploads: postgres: model-cache: