version: "3.9" services: immich-redis: image: redis container_name: Immich-REDIS hostname: immich-redis security_opt: - no-new-privileges:true healthcheck: test: ["CMD-SHELL", "redis-cli ping || exit 1"] user: 1026:100 environment: - TZ=Europe/Berlin volumes: - /volume1/docker/immich/redis:/data:rw restart: on-failure:5 immich-db: image: ghcr.io/immich-app/postgres:16-vectorchord0.3.0-pgvectors0.2.0 container_name: Immich-DB hostname: immich-db security_opt: - no-new-privileges:true volumes: - /volume1/docker/immich/db:/var/lib/postgresql/data:rw environment: - TZ=Europe/Berlin - POSTGRES_DB=immich - POSTGRES_USER=immichuser - POSTGRES_PASSWORD=immichpw - DB_STORAGE_TYPE=HDD restart: on-failure:5 immich-server: image: ghcr.io/immich-app/immich-server:release container_name: Immich-SERVER hostname: immich-server user: 1026:100 security_opt: - no-new-privileges:true environment: - NODE_ENV=production - TZ=Europe/Berlin - DB_HOSTNAME=immich-db - DB_DATABASE_NAME=immich - DB_PASSWORD=immichpw - DB_USERNAME=immichuser - REDIS_HOSTNAME=immich-redis - LOG_LEVEL=log - JWT_SECRET=3ZUpgwM/pRH3rQ/V34ruKkXOYIIlMIU7roQUh1kzrnVXRNv4DGsyBefhY73At6gS cm2iIOBaPRtp32bpX5OddMkMol54zdZjlask2ipIr/rc+NGCRV9cXRZoVUCojjVY XK9Ooqi7rjRztkT2UkqWGN2gdC27JucswmwtJlBTidY= - DISABLE_REVERSE_GEOCODING=false - REVERSE_GEOCODING_PRECISION=3 - PUBLIC_LOGIN_MESSAGE= - IMMICH_WEB_URL=http://immich-web:3000 - IMMICH_SERVER_URL=http://immich-server:3001 - IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003 ports: - 8778:2283 volumes: - /volume1/docker/immich/upload:/usr/src/app/upload:rw - /volume1/photo:/mnt/media/photo:rw restart: on-failure:5 depends_on: immich-redis: condition: service_healthy immich-db: condition: service_started immich-machine-learning: image: ghcr.io/immich-app/immich-machine-learning:release container_name: Immich-LEARNING hostname: immich-machine-learning user: 1026:100 security_opt: - no-new-privileges:true environment: - NODE_ENV=production - TZ=Europe/Berlin - DB_HOSTNAME=immich-db - DB_DATABASE_NAME=immich - DB_PASSWORD=immichpw - DB_USERNAME=immichuser - REDIS_HOSTNAME=immich-redis - LOG_LEVEL=log - JWT_SECRET=3ZUpgwM/pRH3rQ/V34ruKkXOYIIlMIU7roQUh1kzrnVXRNv4DGsyBefhY73At6gS cm2iIOBaPRtp32bpX5OddMkMol54zdZjlask2ipIr/rc+NGCRV9cXRZoVUCojjVY XK9Ooqi7rjRztkT2UkqWGN2gdC27JucswmwtJlBTidY= - DISABLE_REVERSE_GEOCODING=false - REVERSE_GEOCODING_PRECISION=3 - PUBLIC_LOGIN_MESSAGE= - IMMICH_WEB_URL=http://immich-web:3000 - IMMICH_SERVER_URL=http://immich-server:3001 - IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003 volumes: - /volume1/docker/immich/upload:/usr/src/app/upload:rw - /volume1/photo:/mnt/media/photo:rw - /volume1/docker/immich/cache:/cache:rw restart: on-failure:5 depends_on: immich-db: condition: service_started immichframe: image: ghcr.io/immichframe/immichframe:latest container_name: Immich-Frame hostname: immich-frame user: 1026:100 security_opt: - no-new-privileges:true environment: - TZ=Europe/Berlin volumes: - /volume1/docker/immich/frame:/app/Config ports: - 8779:8080 restart: on-failure:5 depends_on: immich-redis: condition: service_healthy immich-db: condition: service_started immich-server: condition: service_healthy immich-kiosk: image: ghcr.io/damongolding/immich-kiosk:latest container_name: Immich-Kiosk user: 1026:100 security_opt: - no-new-privileges:true environment: - LANG=de_DE - TZ=Europe/Berlin # Required settings - KIOSK_IMMICH_API_KEY=rdlNW8KnKb8aU9uygKifH9Ceh6qVpfJR7ZlrHq8js - KIOSK_IMMICH_URL=http://marge.fritz.box:8778 # External url for image links/QR codes - KIOSK_IMMICH_EXTERNAL_URL=http://marge.fritz.box:8778 # Clock - KIOSK_SHOW_TIME=true - KIOSK_TIME_FORMAT=24 - KIOSK_SHOW_DATE=true - KIOSK_DATE_FORMAT=DD.MM.YYYY # Kiosk behaviour - KIOSK_REFRESH=100 - KIOSK_DISABLE_SCREENSAVER=false - KIOSK_OPTIMIZE_IMAGES=false - KIOSK_USE_GPU=true # Asset sources - KIOSK_SHOW_ARCHIVED=false #- KIOSK_ALBUM=ALBUM_ID,ALBUM_ID,ALBUM_ID - KIOSK_ALBUM_ORDER=random - KIOSK_EXCLUDED_ALBUMS=e11f822a-685b-4d22-ae2f-217ad7fc05e7 - KIOSK_EXPERIMENTAL_ALBUM_VIDEO=true #- KIOSK_PERSON=PERSON_ID,PERSON_ID,PERSON_ID #- KIOSK_DATE=DATE_RANGE,DATE_RANGE,DATE_RANGE #- KIOSK_TAG=TAG_VALUE,TAG_VALUE,TAG_VALUE #- KIOSK_MEMORIES=false #- KIOSK_BLACKLIST=ASSET_ID,ASSET_ID,ASSET_ID # FILTER #- KIOSK_DATE_FILTER= # UI - KIOSK_DISABLE_NAVIGATION=false - KIOSK_DISABLE_UI=false - KIOSK_FRAMELESS=true - KIOSK_HIDE_CURSOR=true - KIOSK_FONT_SIZE=100 - KIOSK_BACKGROUND_BLUR=true - KIOSK_BACKGROUND_BLUR_AMOUNT=10 - KIOSK_THEME=fade - KIOSK_LAYOUT=splitview # Sleep mode # KIOSK_SLEEP_START=22 # KIOSK_SLEEP_END=7 # Transistion options - KIOSK_TRANSITION=cross-fade - KIOSK_FADE_TRANSITION_DURATION=1 - KIOSK_CROSS_FADE_TRANSITION_DURATION=1 # Image display settings - KIOSK_SHOW_PROGRESS=true - KIOSK_IMAGE_FIT=contain - KIOSK_IMAGE_EFFECT=smart-zoom - KIOSK_IMAGE_EFFECT_AMOUNT=110 - KIOSK_USE_ORIGINAL_IMAGE=false # Image metadata - KIOSK_SHOW_ALBUM_NAME=true - KIOSK_SHOW_PERSON_NAME=true - KIOSK_SHOW_PERSON_AGE=true - KIOSK_SHOW_IMAGE_TIME=true - KIOSK_IMAGE_TIME_FORMAT=24 - KIOSK_SHOW_IMAGE_DATE=true - KIOSK_IMAGE_DATE_FORMAT=DD.MM.YYYY - KIOSK_SHOW_IMAGE_DESCRIPTION=true - KIOSK_SHOW_IMAGE_EXIF=false - KIOSK_SHOW_IMAGE_LOCATION=true - KIOSK_HIDE_COUNTRIES=Germany - KIOSK_SHOW_IMAGE_ID=false - KIOSK_SHOW_MORE_INFO=false - KIOSK_SHOW_MORE_INFO_IMAGE_LINK=false - KIOSK_SHOW_MORE_INFO_QR_CODE=true # Kiosk settings - KIOSK_WATCH_CONFIG=false - KIOSK_FETCHED_ASSETS_SIZE=1000 - KIOSK_HTTP_TIMEOUT=20 - KIOSK_PASSWORD= - KIOSK_CACHE=true - KIOSK_PREFETCH=true - KIOSK_ASSET_WEIGHTING=true - KIOSK_PORT=3000 - KIOSK_SHOW_USER=false ports: - 8789:3000 volumes: - /volume1/docker/immich/kiosk/config.yaml:/config/config.yaml:ro restart: on-failure:5 depends_on: immich-redis: condition: service_healthy immich-db: condition: service_started immich-server: condition: service_healthy Immich-Kiosk-Webhook-Server: image: ghcr.io/damongolding/immich-kiosk-webhook-server:latest container_name: Immich-Kiosk-Webhook-Server user: 1026:100 security_opt: - no-new-privileges:true environment: - LANG=de_DE - TZ=Europe/Berlin - IMMICH_URL=http://marge.fritz.box:8778 - IMMICH_API_KEY=rdlNW8KnKb8aU9uygKifH9Ceh6qVpfJR7ZlrHq8js - ALBUM_ID=f091a0e8-f0d8-45d9-8e43-5a5b1e6ae721 ports: - 8799:6000 restart: on-failure:5 depends_on: immich-redis: condition: service_healthy immich-db: condition: service_started immich-server: condition: service_healthy Immich-Folder-Album-Creator: image: salvoxia/immich-folder-album-creator:latest container_name: Immich-Folder-Album-Creator # user: 1026:100 security_opt: - no-new-privileges:true environment: - TZ=Europe/Berlin #- UNATTENDED=1 - ROOT_PATH=/mnt/media/photo - ALBUM_LEVELS=99 - ALBUM_SEPARATOR=" - " - API_URL=http://marge.fritz.box:8778/api - API_KEY=rdlNW8KnKb8aU9uygKifH9Ceh6qVpfJR7ZlrHq8js - CRON_EXPRESSION=0 * * * * #- RUN_IMMEDIATELY=yes - MODE=CREATE #CLEANUP CREATE #- DELETE_CONFIRM=yes #- LOG_LEVEL=DEBUG - SYNC_MODE=2 - FIND_ASSETS_IN_ALBUMS=yes restart: on-failure:5 depends_on: immich-redis: condition: service_healthy immich-db: condition: service_started immich-server: condition: service_healthy Immich-power-tools: container_name: Immich-Power-Tools image: ghcr.io/varun-raj/immich-power-tools:latest user: 1026:100 security_opt: - no-new-privileges:true ports: - 8888:3000 environment: - IMMICH_API_KEY=87AS1UnonxwNALu6SFGWG9npdeQoSEmC6gzhvuMNIHU # your_immich_api_key - IMMICH_URL=http://marge.fritz.box:8778 # Your immich instace ip address and port - EXTERNAL_IMMICH_URL=http://marge.fritz.box:8778 # External address of immich - DB_USERNAME=immichuser # Postgress Database Username - DB_PASSWORD=immichpw # Postgres Database Password - DB_HOST=immich-db # Postgres Host (IP address or hostname of the database) - DB_PORT=5432 # Postgres Port number (Default: 5432) - DB_DATABASE_NAME=immich # Name of the database # Optional - GOOGLE_MAPS_API_KEY=AIzaSyABvBM2xlwDc15-AUCjCSIXgJbTli6aktY # Google Maps API Key - GEMINI_API_KEY=AIzaSyAbH9r5MrodokuW0uU_NtLyptvcfqIVNcg # Gemini API Key restart: on-failure:5 depends_on: immich-redis: condition: service_healthy immich-db: condition: service_started immich-server: condition: service_healthy