media-stack/immich/docker-compose.yml
2024-04-21 23:44:13 -04:00

115 lines
3.4 KiB
YAML

services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:release
environment:
DB_HOSTNAME: immich_postgres
DB_PASSWORD: ${IMMICH_DB_PASSWORD}
DB_USERNAME: postgres
DB_DATABASE_NAME: immich
command: ['start.sh', 'immich']
volumes:
- ${IMMICH_UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
- ${CONFIG_ROOT:-.}/immich/healthcheck:/healthcheck
depends_on:
- immich-redis
- immich-database
restart: always
healthcheck:
test: [ "CMD", "node", "/healthcheck/healthcheck.js" ]
interval: 30s
retries: 10
labels:
- traefik.enable=true
- traefik.http.routers.immich.rule=(Host(`${IMMICH_HOSTNAME}`))
- traefik.http.routers.immich.tls=true
- traefik.http.routers.immich.tls.certresolver=myresolver
- traefik.http.services.immich.loadbalancer.server.port=3001
- homepage.group=Apps
- homepage.name=immich
- homepage.icon=immich.png
- homepage.href=https://${IMMICH_HOSTNAME}
- homepage.description=Self-hosted photo and video management solution
- homepage.weight=4
- homepage.widget.type=immich
- homepage.widget.url=http://immich:3001
- homepage.widget.key=${IMMICH_API_KEY}
profiles:
- immich
immich-microservices:
container_name: immich_microservices
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
environment:
DB_HOSTNAME: immich_postgres
DB_PASSWORD: ${IMMICH_DB_PASSWORD}
DB_USERNAME: postgres
DB_DATABASE_NAME: immich
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
- /dev/dri/card0:/dev/dri/card0
command: ['start.sh', 'microservices']
volumes:
- ${IMMICH_UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
depends_on:
- immich-redis
- immich-database
restart: always
healthcheck:
test: [ "CMD", "bash", "-c", "exec 5<>/dev/tcp/127.0.0.1/3002" ]
interval: 10s
timeout: 5s
retries: 5
profiles:
- immich
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
volumes:
- immich-model-cache:/cache
restart: always
healthcheck:
test: [ "CMD", "bash", "-c", "exec 5<>/dev/tcp/127.0.0.1/3003" ]
interval: 10s
timeout: 5s
retries: 5
profiles:
- immich
immich-redis:
container_name: immich_redis
image: registry.hub.docker.com/library/redis:6.2-alpine@sha256:84882e87b54734154586e5f8abd4dce69fe7311315e2fc6d67c29614c8de2672
restart: always
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
interval: 10s
timeout: 5s
retries: 5
profiles:
- immich
immich-database:
container_name: immich_postgres
image: registry.hub.docker.com/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
environment:
DB_HOSTNAME: immich_postgres
POSTGRES_PASSWORD: ${IMMICH_DB_PASSWORD}
POSTGRES_USER: postgres
POSTGRES_DB: immich
volumes:
- ${CONFIG_ROOT:-.}/immich/postgresql:/var/lib/postgresql/data
restart: always
healthcheck:
test: [ "CMD-SHELL", "pg_isready" ]
interval: 10s
timeout: 5s
retries: 5
profiles:
- immich
volumes:
immich-model-cache: