services: immich-server: image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro environment: UPLOAD_LOCATION: ${UPLOAD_LOCATION} DB_PASSWORD: ${DB_PASSWORD} DB_USERNAME: ${DB_USERNAME} DB_DATABASE_NAME: ${DB_DATABASE_NAME} REDIS_HOSTNAME: redis TZ: ${TZ} ports: - 2283:3001 depends_on: - redis - database restart: always healthcheck: disable: false labels: - "traefik.enable=true" - "traefik.http.routers.immich.rule=Host(`${TRAEFIK_DOMAIN}`)" - "traefik.http.routers.immich.entrypoints=websecure" - "traefik.http.routers.immich.tls.certresolver=myresolver" - "traefik.docker.network=traefik" networks: - immich - traefik immich-machine-learning: container_name: immich_machine_learning image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} volumes: - model-cache:/cache restart: always healthcheck: disable: false networks: - immich redis: image: registry.hub.docker.com/library/redis:6.2-alpine@sha256:84882e87b54734154586e5f8abd4dce69fe7311315e2fc6d67c29614c8de2672 healthcheck: test: redis-cli ping || exit 1 restart: always networks: - immich database: image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0 environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' DB_STORAGE_TYPE: 'HDD' volumes: - ${SERVICE_DATA_ROOT_PATH}/database:/var/lib/postgresql/data restart: always networks: - immich backup-files: image: creativeprojects/resticprofile:${RP_VERSION:-latest} entrypoint: '/bin/sh' hostname: immich-resticprofile restart: always command: - '-c' - 'resticprofile schedule --all && crond -f' volumes: - ${SERVICE_DATA_ROOT_PATH}/restic/resticprofile.yaml:/etc/resticprofile/profiles.yaml:ro - ${SERVICE_DATA_ROOT_PATH}/restic/restic.key:/etc/resticprofile/key:ro - ${UPLOAD_LOCATION}:${UPLOAD_LOCATION}:ro - ${SERVICE_DATA_ROOT_PATH}/db_dumps:/db_dumps:ro environment: TZ: ${TZ} AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} backup-database: container_name: immich_db_dumper image: prodrigestivill/postgres-backup-local:14 restart: always environment: POSTGRES_HOST: database POSTGRES_CLUSTER: 'TRUE' POSTGRES_USER: ${DB_USERNAME} POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: ${DB_DATABASE_NAME} BACKUP_KEEP_MINS: "120" SCHEDULE: "50 * * * *" POSTGRES_EXTRA_OPTS: '--clean --if-exists' BACKUP_DIR: /db_dumps volumes: - ${SERVICE_DATA_ROOT_PATH}/db_dumps:/db_dumps depends_on: - database networks: - immich networks: immich: name: immich traefik: name: traefik external: true volumes: model-cache: