pyinfra/services/immich/docker-compose.yml

70 lines
1.7 KiB
YAML

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
- /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=3001
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