Docker/Immich/docker-compose.yaml

108 lines
3.2 KiB
YAML

version: "3.8"
#
# WARNING: Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.
#
name: immich
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
command: [ "start.sh", "immich" ]
volumes:
- ${IMMICH_UPLOAD_DIR}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
- ${IMMICH_EXTERNAL_DIR}:/mnt/media:ro
env_file:
- stack.env
ports:
- ${IMMICH_PORT_HTTP}:3001
- ${IMMICH_PORT_HTTPS}:443
expose:
- ${IMMICH_PORT_HTTP}
- ${IMMICH_PORT_HTTPS}
depends_on:
- redis
- database
restart: always
labels:
- traefik.enable=true
- traefik.http.routers.immich.entrypoints=web
- traefik.http.routers.immich.rule=Host(`${IMMICH_URL}`)
- traefik.http.routers.immich.middlewares=immich-https-redirect
- traefik.http.middlewares.immich-https-redirect.redirectscheme.scheme=https
- traefik.http.routers.immich-secure.entrypoints=websecure
- traefik.http.routers.immich-secure.rule=Host(`${IMMICH_URL}`)
- traefik.http.routers.immich-secure.tls=true
- traefik.http.routers.immich-secure.tls.certresolver=myresolver
- traefik.http.services.immich-secure.loadbalancer.server.port=3001
- traefik.http.services.immich-secure.loadbalancer.server.scheme=http
- traefik.docker.network=proxy
- homepage.group=Media
- homepage.name=Immich
- homepage.icon=immich.png
- homepage.href=${IMMICH_URL}
- homepage.description=Photo gallery
- homepage.widget.type=immich
- homepage.widget.url=${IMMICH_URL}
- homepage.widget.key=${IMMICH_API_KEY}
immich-microservices:
container_name: immich_microservices
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
# extends:
# file: hwaccel.yml
# service: hwaccel
command: [ "start.sh", "microservices" ]
volumes:
- ${IMMICH_UPLOAD_DIR}:/usr/src/app/upload
- ${IMMICH_EXTERNAL_DIR}:/mnt/media:ro
- /etc/localtime:/etc/localtime:ro
env_file:
- stack.env
depends_on:
- redis
- database
restart: always
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
volumes:
- model-cache:/cache
env_file:
- stack.env
restart: always
redis:
container_name: immich_redis
image: redis:6.2-alpine@sha256:c5a607fb6e1bb15d32bbcf14db22787d19e428d59e31a5da67511b49bb0f1ccc
restart: always
database:
container_name: immich_postgres
image: tensorchord/pgvecto-rs:pg14-v0.1.11@sha256:0335a1a22f8c5dd1b697f14f079934f5152eaaa216c09b61e293be285491f8ee
env_file:
- stack.env
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
volumes:
- pgdata:/var/lib/postgresql/data
restart: always
volumes:
pgdata:
model-cache: