homelab/immich/compose.yml

121 lines
3.0 KiB
YAML

version: "3.8"
networks:
proxy:
external: true
#
# 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:
- ${PATH_PHOTOS}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
networks:
- proxy
- default
env_file:
- .env
depends_on:
- redis
- database
restart: always
deploy:
resources:
limits:
cpus: '1'
memory: 2048M
security_opt:
- no-new-privileges:true
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.immich.rule=Host(`${HOSTNAME_PHOTOS}`)"
- "traefik.http.routers.immich.entrypoints=websecure"
- "traefik.http.routers.immich.tls=true"
- "traefik.http.routers.immich.tls.certresolver=myresolver"
- "traefik.http.services.immich.loadbalancer.server.port=3001"
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:
- ${PATH_PHOTOS}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
depends_on:
- redis
- database
restart: always
deploy:
resources:
limits:
cpus: '1'
memory: 2048M
security_opt:
- no-new-privileges:true
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
volumes:
- ../.volumes/immich/model-cache:/cache
env_file:
- .env
restart: always
deploy:
resources:
limits:
cpus: '1'
memory: 2048M
security_opt:
- no-new-privileges:true
redis:
container_name: immich_redis
image: redis:6.2-alpine@sha256:c5a607fb6e1bb15d32bbcf14db22787d19e428d59e31a5da67511b49bb0f1ccc
restart: always
deploy:
resources:
limits:
cpus: '0.25'
memory: 1024M
security_opt:
- no-new-privileges:true
database:
container_name: immich_postgres
image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
env_file:
- .env
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
volumes:
- ../.volumes/immich/postgres:/var/lib/postgresql/data
restart: always
deploy:
resources:
limits:
cpus: '1'
memory: 2048M
security_opt:
- no-new-privileges:true