RealOrangeOne-infrastructure/ansible/roles/immich/files/docker-compose.yml
2025-11-05 20:00:32 +00:00

84 lines
2.6 KiB
YAML

services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:release
user: "{{ docker_user.id }}"
volumes:
- /mnt/tank/files/immich:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
- /mnt/tank/files/photos:/mnt/photos:ro
depends_on:
- redis
- database
- immich-machine-learning
restart: unless-stopped
environment:
- DATABASE_URL=postgres://postgres:postgres@database/immich
- TZ={{ timezone }}
devices:
- /dev/dri:/dev/dri
labels:
- traefik.enable=true
- traefik.http.routers.immich.rule=Host(`immich.jakehoward.tech`)
- traefik.http.routers.immich.middlewares=tailscale-only@file
networks:
- default
- traefik
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:release
user: "{{ docker_user.id }}"
volumes:
- /mnt/scratch/immich-model-cache:/cache
- /mnt/scratch/immich-ml-cache:/.cache
- /mnt/scratch/immich-ml-config:/.config
environment:
- DATABASE_URL=postgres://postgres:postgres@database/immich
- MACHINE_LEARNING_WORKER_TIMEOUT=240
restart: unless-stopped
devices:
- /dev/dri:/dev/dri
depends_on:
- database
- redis
redis:
image: redis:8-alpine
restart: unless-stopped
volumes:
- /mnt/speed/dbs/redis/immich:/data
database:
container_name: immich_postgres
image: tensorchord/pgvecto-rs:pg14-v0.2.0
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
POSTGRES_DB: immich
POSTGRES_INITDB_ARGS: --data-checksums
volumes:
- /mnt/speed/dbs/postgres/immich:/var/lib/postgresql/data
restart: unless-stopped
# yamllint disable-line rule:quoted-strings rule:line-length
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]
immich-public-proxy:
image: alangrainger/immich-public-proxy:latest
user: "{{ docker_user.id }}"
restart: unless-stopped
environment:
- IMMICH_URL=http://immich-server:2283
volumes:
- ./ipp-config.json:/app/config.json:ro
labels:
- traefik.enable=true
- traefik.http.routers.immich-public-proxy.rule=Host(`photos.jakehoward.tech`)
- traefik.http.services.immich-public-proxy-immich.loadbalancer.server.port=3000
networks:
- default
- traefik
networks:
traefik:
external: true