name: immich 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 volumes: - ${IMMICH_UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro - ${CONFIG_ROOT:-.}/immich/healthcheck:/healthcheck depends_on: - redis - database restart: always 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=2283 - 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-server:2283 - homepage.widget.key=${IMMICH_API_KEY} - homepage.widget.version=2 ports: - '2283:2283' immich-machine-learning: container_name: immich_machine_learning image: ghcr.io/immich-app/immich-machine-learning:release volumes: - model-cache:/cache restart: always redis: container_name: immich_redis image: docker.io/valkey/valkey:9@sha256:546304417feac0874c3dd576e0952c6bb8f06bb4093ea0c9ca303c73cf458f63 healthcheck: test: redis-cli ping || exit 1 restart: always database: container_name: immich_postgres image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23 environment: POSTGRES_PASSWORD: ${IMMICH_DB_PASSWORD} POSTGRES_USER: postgres POSTGRES_DB: immich POSTGRES_INITDB_ARGS: '--data-checksums' volumes: - ${CONFIG_ROOT:-.}/immich/postgresql:/var/lib/postgresql/data restart: always shm_size: 128mb volumes: model-cache: