services: # Photos immich-server: container_name: immich_server image: ghcr.io/immich-app/immich-server:$IMMICH_VERSION # extends: # file: hwaccel.transcoding.yml # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding volumes: # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the stack.env file - $UPLOAD_LOCATION:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro ports: - '2283:2283' depends_on: - redis - database restart: always healthcheck: disable: false immich-machine-learning: container_name: immich_machine_learning # For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag. # Example tag: ${IMMICH_VERSION:-release}-cuda image: ghcr.io/immich-app/immich-machine-learning:$IMMICH_VERSION # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration # file: hwaccel.ml.yml # service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable volumes: - $MODEL_CACHE_LOCATION:/cache restart: always healthcheck: disable: false redis: container_name: immich_redis image: docker.io/valkey/valkey:8-bookworm@sha256:ff21bc0f8194dc9c105b769aeabf9585fea6a8ed649c0781caeac5cb3c247884 healthcheck: test: redis-cli ping || exit 1 restart: always database: container_name: immich_postgres image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0@sha256:fa4f6e0971f454cd95fec5a9aaed2ed93d8f46725cc6bc61e0698e97dba96da1 restart: always environment: POSTGRES_PASSWORD: $DB_PASSWORD POSTGRES_USER: $DB_USERNAME POSTGRES_DB: $DB_DATABASE_NAME POSTGRES_INITDB_ARGS: '--data-checksums' # Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs # DB_STORAGE_TYPE: 'HDD' volumes: # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file - $DB_DATA_LOCATION:/var/lib/postgresql/data # Video jellyfin: image: jellyfin/jellyfin:latest container_name: jellyfin restart: unless-stopped network_mode: host ports: - 8096:8096 volumes: - /share/Container/docker_volumes/jellyfin:/config - /share/Container/docker_volumes/jellyfin/cache:/cache - /share/TV/:/TV - /share/Movies:/Movies - /share/Music:/Music environment: - PUID=0 - PGID=0 - TZ=America/New_York # Music navidrome: image: deluan/navidrome:latest container_name: navidrome restart: unless-stopped network_mode: host ports: - 4533:4533 #user: 1000:1000 # should be owner of volumes volumes: - /share/Container/docker_volumes/navidrome/data:/data - /share/Music/FullCDs:/music:ro #environment: # Optional: put your config options customization here. Examples: #- ND_SCANSCHEDULE: 1h #- ND_LOGLEVEL: info #- ND_SESSIONTIMEOUT: 24h #- ND_BASEURL: "" logging: options: max-size: "10m" max-file: "3" # E-Books kavita: image: jvmilazz0/kavita:latest container_name: kavita restart: unless-stopped network_mode: host ports: - 5000:5000 volumes: - /share/Container/docker_volumes/kavita/manga:/manga - /share/Container/docker_volumes/kavita/data:/kavita/config - /share/books/ebooks:/books logging: options: max-size: "10m" max-file: "3" # Audiobooks: audiobookshelf: image: ghcr.io/advplyr/audiobookshelf:latest container_name: audiobookshelf restart: unless-stopped network_mode: host ports: - 5050:80 volumes: - /share/Container/docker_volumes/audiobookshelf:/podcasts - /share/Container/docker_volumes/audiobookshelf/config:/config - /share/Container/docker_volumes/audiobookshelf/metadata:/metadata - /share/books/abooks:/audiobooks environment: - TZ=America/New_York logging: options: max-size: "10m" max-file: "3"