services: immich-server: image: ghcr.io/immich-app/immich-server:release restart: unless-stopped volumes: - /srv/dev-disk-by-uuid-1582b800-1f82-407a-a3aa-3460b3390127/docker/immich/upload:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro networks: - internal - proxy labels: - "traefik.enable=true" - "traefik.docker.network=traefik" - "traefik.http.routers.immich-web.rule=Host(`photos.skrd.fun`)" - "traefik.http.routers.immich-web.entrypoints=web" - "traefik.http.routers.immich-web.middlewares=redirect-to-https@file" - "traefik.http.routers.immich.rule=Host(`photos.skrd.fun`)" - "traefik.http.routers.immich.entrypoints=websecure" - "traefik.http.routers.immich.tls.certresolver=cf" - "traefik.http.services.immich.loadbalancer.server.port=2283" environment: DB_PASSWORD: ${DB_PASSWORD} DB_USERNAME: ${DB_USERNAME} DB_DATABASE_NAME: ${DB_DATABASE_NAME} depends_on: - redis - database immich-machine-learning: image: ghcr.io/immich-app/immich-machine-learning:release restart: unless-stopped networks: - internal volumes: - /srv/dev-disk-by-uuid-1582b800-1f82-407a-a3aa-3460b3390127/docker/immich/model-cache:/cache redis: image: docker.io/redis:6.2-alpine@sha256:328fe6a5822256d065debb36617a8169dbfbd77b797c525288e465f56c1d392b restart: unless-stopped networks: - internal healthcheck: test: redis-cli ping || exit 1 database: image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0 restart: unless-stopped networks: - internal environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: "--data-checksums" volumes: - /srv/dev-disk-by-uuid-1582b800-1f82-407a-a3aa-3460b3390127/docker/immich/postgres:/var/lib/postgresql/data healthcheck: test: pg_isready --dbname='immich' --username='postgres' || exit 1; Chksum="$$(psql --dbname='immich' --username='postgres' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1 interval: 5m start_interval: 30s start_period: 5m command: [ "postgres", "-c", "shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on", ] networks: internal: name: immich proxy: name: traefik external: true