services: immich: image: 'ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}' volumes: - 'immich-uploads:/usr/src/app/upload' - type: bind source: '/shared/nextcloud/data/cloud/files/home/pictures/DCIM' target: '/libraries/DCIM' is_directory: true - '/etc/localtime:/etc/localtime:ro' environment: - SERVICE_URL_IMMICH_2283 - UPLOAD_LOCATION=./library - DB_DATA_LOCATION=./postgres - DB_PASSWORD=$SERVICE_PASSWORD_POSTGRES - DB_USERNAME=$SERVICE_USER_POSTGRES - 'DB_DATABASE_NAME=${DB_DATABASE_NAME:-immich}' - 'TZ=${TZ:-Etc/UTC}' depends_on: redis: condition: service_healthy database: condition: service_healthy healthcheck: disable: false immich-machine-learning: container_name: immich_machine_learning image: 'ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}' volumes: - 'immich-model-cache:/cache' environment: - UPLOAD_LOCATION=./library - DB_DATA_LOCATION=./postgres - DB_PASSWORD=$SERVICE_PASSWORD_POSTGRES - DB_USERNAME=$SERVICE_USER_POSTGRES - 'DB_DATABASE_NAME=${DB_DATABASE_NAME:-immich}' - 'TZ=${TZ:-Etc/UTC}' healthcheck: disable: false redis: image: 'redis:7.4-alpine' healthcheck: test: - CMD - redis-cli - PING interval: 5s timeout: 10s retries: 20 database: image: 'ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0' environment: POSTGRES_PASSWORD: '${SERVICE_PASSWORD_POSTGRES}' POSTGRES_USER: '${SERVICE_USER_POSTGRES}' POSTGRES_DB: '${DB_DATABASE_NAME:-immich}' POSTGRES_INITDB_ARGS: '--data-checksums' DB_STORAGE_TYPE: '${DB_STORAGE_TYPE:-SSD}' volumes: - 'immich-postgres-data:/var/lib/postgresql/data' healthcheck: test: - CMD-SHELL - 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}' interval: 5s timeout: 20s retries: 10