2024-04-22 00:46:44 +02:00
|
|
|
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
|
2024-04-22 05:50:31 +02:00
|
|
|
- homepage.widget.url=http://immich-server:3001
|
2024-04-22 00:46:44 +02:00
|
|
|
- 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:
|