volumes: database-data: name: database-data model-cache-data: name: model-cache-data immich-pg-backup: name: immich-pg-backup networks: traefik-net: external: true name: traefik-net x-traefik: &x-traefiK networks: - traefik-net - default services: immich-server: image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - ${EXTERNAL_LOCATION}:/mnt/external - /etc/localtime:/etc/localtime:ro env_file: - .env <<: *x-traefiK depends_on: - redis - database deploy: labels: - traefik.enable=true - traefik.docker.network=traefik-net - traefik.http.routers.immich.rule=Host(`${EXTERNAL_HOST}`) - traefik.http.routers.immich.entrypoints=${ENTRYPOINTS:-websecure} - traefik.http.routers.immich.tls.certresolver=le - traefik.http.services.immich.loadbalancer.server.port=2283 immich-machine-learning: image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} volumes: - model-cache-data:/cache env_file: - .env redis: image: redis:6.2-alpine database: image: tensorchord/pgvecto-rs:pg14-v0.2.0 environment: - POSTGRES_PASSWORD=${DB_PASSWORD} - POSTGRES_USER=${DB_USERNAME} - POSTGRES_DB=${DB_DATABASE_NAME} volumes: - database-data:/var/lib/postgresql/data database-backup: image: prodrigestivill/postgres-backup-local:14 depends_on: - database volumes: - immich-pg-backup:/backups environment: - POSTGRES_EXTRA_OPTS=-Z 6 -F c - POSTGRES_PASSWORD=${DB_PASSWORD} - POSTGRES_USER=${DB_USERNAME} - POSTGRES_DB=${DB_DATABASE_NAME} - POSTGRES_HOST=database