From c737b459ae7c69f739c6274200c8e877ae3d4e36 Mon Sep 17 00:00:00 2001 From: msnie Date: Sat, 27 Jul 2024 21:38:55 +0200 Subject: [PATCH] immich --- immich/.env | 210 +++++++++++--------- immich/docker-compose.yml | 401 ++++++++++++++++++++++---------------- 2 files changed, 354 insertions(+), 257 deletions(-) diff --git a/immich/.env b/immich/.env index 6dbe5ab..e9e1448 100644 --- a/immich/.env +++ b/immich/.env @@ -1,107 +1,131 @@ -################################################################################### -# Database -################################################################################### -# NOTE: The following four database variables support Docker secrets by adding a *_FILE suffix to the variable name -# See the docker-compose documentation on secrets for additional details: https://docs.docker.com/compose/compose-file/compose-file-v3/#secrets -DB_HOSTNAME=immich_postgres -DB_USERNAME=postgres +# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables + +# The location where your uploaded files are stored +UPLOAD_LOCATION=/srv/immich/uploads +# The location where your database files are stored +DB_DATA_LOCATION=/srv/immich/pgdata + +# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List +# TZ=Etc/UTC + +# The Immich version to use. You can pin this to a specific version like "v1.71.0" +IMMICH_VERSION=release + +# Connection secret for postgres. You should change it to a random password DB_PASSWORD=postgres_kaf9asfjkas8asfhjasf333 + +# The values below this line do not need to be changed +################################################################################### +DB_USERNAME=postgres DB_DATABASE_NAME=immich -# Optional Database settings: -# DB_PORT=5432 - -################################################################################### -# Redis -################################################################################### - -REDIS_HOSTNAME=immich_redis - -# REDIS_URL will be used to pass custom options to ioredis. -# Example for Sentinel -# {"sentinels":[{"host":"redis-sentinel-node-0","port":26379},{"host":"redis-sentinel-node-1","port":26379},{"host":"redis-sentinel-node-2","port":26379}],"name":"redis-sentinel"} -# REDIS_URL=ioredis://eyJzZW50aW5lbHMiOlt7Imhvc3QiOiJyZWRpcy1zZW50aW5lbDEiLCJwb3J0IjoyNjM3OX0seyJob3N0IjoicmVkaXMtc2VudGluZWwyIiwicG9ydCI6MjYzNzl9XSwibmFtZSI6Im15bWFzdGVyIn0= - -# Optional Redis settings: - -# Note: these parameters are not automatically passed to the Redis Container -# to do so, please edit the docker-compose.yml file as well. Redis is not configured -# via environment variables, only redis.conf or the command line - -# REDIS_PORT=6379 -# REDIS_DBINDEX=0 -# REDIS_USERNAME= -# REDIS_PASSWORD= -# REDIS_SOCKET= - -################################################################################### -# Upload File Location -# -# This is the location where uploaded files are stored. -################################################################################### - -UPLOAD_LOCATION=/srv/immich/uploads -################################################################################### -# Typesense -################################################################################### -TYPESENSE_API_KEY=a897scf-ac8c3aghjfghafwfgr44k-567cvhdf3odjkfg -# TYPESENSE_ENABLED=false -# TYPESENSE_URL uses base64 encoding for the nodes json. -# Example JSON that was used: -# [ -# { 'host': 'typesense-1.example.net', 'port': '443', 'protocol': 'https' }, -# { 'host': 'typesense-2.example.net', 'port': '443', 'protocol': 'https' }, -# { 'host': 'typesense-3.example.net', 'port': '443', 'protocol': 'https' }, -# ] -# TYPESENSE_URL=ha://WwogICAgeyAnaG9zdCc6ICd0eXBlc2Vuc2UtMS5leGFtcGxlLm5ldCcsICdwb3J0JzogJzQ0MycsICdwcm90b2NvbCc6ICdodHRwcycgfSwKICAgIHsgJ2hvc3QnOiAndHlwZXNlbnNlLTIuZXhhbXBsZS5uZXQnLCAncG9ydCc6ICc0NDMnLCAncHJvdG9jb2wnOiAnaHR0cHMnIH0sCiAgICB7ICdob3N0JzogJ3R5cGVzZW5zZS0zLmV4YW1wbGUubmV0JywgJ3BvcnQnOiAnNDQzJywgJ3Byb3RvY29sJzogJ2h0dHBzJyB9LApd +# ################################################################################### +# # Database +# ################################################################################### -################################################################################### -# Reverse Geocoding -# -# Reverse geocoding is done locally which has a small impact on memory usage -# This memory usage can be altered by changing the REVERSE_GEOCODING_PRECISION variable -# This ranges from 0-3 with 3 being the most precise -# 3 - Cities > 500 population: ~200MB RAM -# 2 - Cities > 1000 population: ~150MB RAM -# 1 - Cities > 5000 population: ~80MB RAM -# 0 - Cities > 15000 population: ~40MB RAM -#################################################################################### +# # NOTE: The following four database variables support Docker secrets by adding a *_FILE suffix to the variable name +# # See the docker-compose documentation on secrets for additional details: https://docs.docker.com/compose/compose-file/compose-file-v3/#secrets +# DB_HOSTNAME=immich_postgres +# DB_USERNAME=postgres +# DB_PASSWORD=postgres_kaf9asfjkas8asfhjasf333 +# DB_DATABASE_NAME=immich -# DISABLE_REVERSE_GEOCODING=false -# REVERSE_GEOCODING_PRECISION=3 +# # Optional Database settings: +# # DB_PORT=5432 -#################################################################################### -# WEB - Optional -# -# Custom message on the login page, should be written in HTML form. -# For example: -# PUBLIC_LOGIN_PAGE_MESSAGE="This is a demo instance of Immich.

Email: demo@demo.de
Password: demo" -#################################################################################### +# ################################################################################### +# # Redis +# ################################################################################### -PUBLIC_LOGIN_PAGE_MESSAGE=Look +# REDIS_HOSTNAME=immich_redis -#################################################################################### -# Alternative Service Addresses - Optional -# -# This is an advanced feature for users who may be running their immich services on different hosts. -# It will not change which address or port that services bind to within their containers, but it will change where other services look for their peers. -# Note: immich-microservices is bound to 3002, but no references are made -#################################################################################### +# # REDIS_URL will be used to pass custom options to ioredis. +# # Example for Sentinel +# # {"sentinels":[{"host":"redis-sentinel-node-0","port":26379},{"host":"redis-sentinel-node-1","port":26379},{"host":"redis-sentinel-node-2","port":26379}],"name":"redis-sentinel"} +# # REDIS_URL=ioredis://eyJzZW50aW5lbHMiOlt7Imhvc3QiOiJyZWRpcy1zZW50aW5lbDEiLCJwb3J0IjoyNjM3OX0seyJob3N0IjoicmVkaXMtc2VudGluZWwyIiwicG9ydCI6MjYzNzl9XSwibmFtZSI6Im15bWFzdGVyIn0= -IMMICH_WEB_URL=http://immich-web:3000 -IMMICH_SERVER_URL=http://immich-server:3001 -IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003 +# # Optional Redis settings: -#################################################################################### -# Alternative API's External Address - Optional -# -# This is an advanced feature used to control the public server endpoint returned to clients during Well-known discovery. -# You should only use this if you want mobile apps to access the immich API over a custom URL. Do not include trailing slash. -# NOTE: At this time, the web app will not be affected by this setting and will continue to use the relative path: /api -# Examples: http://localhost:3001, http://immich-api.example.com, etc -#################################################################################### +# # Note: these parameters are not automatically passed to the Redis Container +# # to do so, please edit the docker-compose.yml file as well. Redis is not configured +# # via environment variables, only redis.conf or the command line -IMMICH_API_URL_EXTERNAL=https://imm.knast.cc \ No newline at end of file +# # REDIS_PORT=6379 +# # REDIS_DBINDEX=0 +# # REDIS_USERNAME= +# # REDIS_PASSWORD= +# # REDIS_SOCKET= + +# ################################################################################### +# # Upload File Location +# # +# # This is the location where uploaded files are stored. +# ################################################################################### + +# UPLOAD_LOCATION=/srv/immich/uploads + + +# ################################################################################### +# # Typesense +# ################################################################################### +# TYPESENSE_API_KEY=a897scf-ac8c3aghjfghafwfgr44k-567cvhdf3odjkfg +# # TYPESENSE_ENABLED=false +# # TYPESENSE_URL uses base64 encoding for the nodes json. +# # Example JSON that was used: +# # [ +# # { 'host': 'typesense-1.example.net', 'port': '443', 'protocol': 'https' }, +# # { 'host': 'typesense-2.example.net', 'port': '443', 'protocol': 'https' }, +# # { 'host': 'typesense-3.example.net', 'port': '443', 'protocol': 'https' }, +# # ] +# # TYPESENSE_URL=ha://WwogICAgeyAnaG9zdCc6ICd0eXBlc2Vuc2UtMS5leGFtcGxlLm5ldCcsICdwb3J0JzogJzQ0MycsICdwcm90b2NvbCc6ICdodHRwcycgfSwKICAgIHsgJ2hvc3QnOiAndHlwZXNlbnNlLTIuZXhhbXBsZS5uZXQnLCAncG9ydCc6ICc0NDMnLCAncHJvdG9jb2wnOiAnaHR0cHMnIH0sCiAgICB7ICdob3N0JzogJ3R5cGVzZW5zZS0zLmV4YW1wbGUubmV0JywgJ3BvcnQnOiAnNDQzJywgJ3Byb3RvY29sJzogJ2h0dHBzJyB9LApd + +# ################################################################################### +# # Reverse Geocoding +# # +# # Reverse geocoding is done locally which has a small impact on memory usage +# # This memory usage can be altered by changing the REVERSE_GEOCODING_PRECISION variable +# # This ranges from 0-3 with 3 being the most precise +# # 3 - Cities > 500 population: ~200MB RAM +# # 2 - Cities > 1000 population: ~150MB RAM +# # 1 - Cities > 5000 population: ~80MB RAM +# # 0 - Cities > 15000 population: ~40MB RAM +# #################################################################################### + +# # DISABLE_REVERSE_GEOCODING=false +# # REVERSE_GEOCODING_PRECISION=3 + +# #################################################################################### +# # WEB - Optional +# # +# # Custom message on the login page, should be written in HTML form. +# # For example: +# # PUBLIC_LOGIN_PAGE_MESSAGE="This is a demo instance of Immich.

Email: demo@demo.de
Password: demo" +# #################################################################################### + +# PUBLIC_LOGIN_PAGE_MESSAGE=Look + +# #################################################################################### +# # Alternative Service Addresses - Optional +# # +# # This is an advanced feature for users who may be running their immich services on different hosts. +# # It will not change which address or port that services bind to within their containers, but it will change where other services look for their peers. +# # Note: immich-microservices is bound to 3002, but no references are made +# #################################################################################### + +# IMMICH_WEB_URL=http://immich-web:3000 +# IMMICH_SERVER_URL=http://immich-server:3001 +# IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003 + +# #################################################################################### +# # Alternative API's External Address - Optional +# # +# # This is an advanced feature used to control the public server endpoint returned to clients during Well-known discovery. +# # You should only use this if you want mobile apps to access the immich API over a custom URL. Do not include trailing slash. +# # NOTE: At this time, the web app will not be affected by this setting and will continue to use the relative path: /api +# # Examples: http://localhost:3001, http://immich-api.example.com, etc +# #################################################################################### + +# IMMICH_API_URL_EXTERNAL=https://imm.knast.cc \ No newline at end of file diff --git a/immich/docker-compose.yml b/immich/docker-compose.yml index ce55320..d897054 100644 --- a/immich/docker-compose.yml +++ b/immich/docker-compose.yml @@ -1,188 +1,261 @@ 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} + # extends: + # file: hwaccel.transcoding.yml + # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding + volumes: + - ${UPLOAD_LOCATION}:/usr/src/app/upload + - /etc/localtime:/etc/localtime:ro + env_file: + - .env + ports: + - 2283:3001 + depends_on: + - redis + - database + restart: always + + immich-machine-learning: + container_name: immich_machine_learning + # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag. + # Example tag: ${IMMICH_VERSION:-release}-cuda + image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} + # 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, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable + volumes: + - model-cache:/cache + env_file: + - .env + restart: always + + redis: + container_name: immich_redis + image: docker.io/redis:6.2-alpine@sha256:e3b17ba9479deec4b7d1eeec1548a253acc5374d68d3b27937fcfe4df8d18c7e + healthcheck: + test: redis-cli ping || exit 1 + restart: always + + database: + container_name: immich_postgres + image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0 + environment: + POSTGRES_PASSWORD: ${DB_PASSWORD} + POSTGRES_USER: ${DB_USERNAME} + POSTGRES_DB: ${DB_DATABASE_NAME} + POSTGRES_INITDB_ARGS: '--data-checksums' + volumes: + - ${DB_DATA_LOCATION}:/var/lib/postgresql/data + healthcheck: + test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1 + interval: 5m + start_interval: 30s + start_period: 5m + command: ["postgres", "-c" ,"shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"] + restart: always + +volumes: + model-cache: + + +# # services: +# # immich-server: +# # networks: +# # - traefik +# # container_name: immich_server +# # image: ghcr.io/immich-app/immich-server:latest +# # entrypoint: ["/bin/sh", "./start-server.sh"] +# # volumes: +# # - ${UPLOAD_LOCATION}:/usr/src/app/upload +# # env_file: +# # - .env +# # depends_on: +# # - redis +# # - database +# # - typesense +# # restart: always + +# # immich-microservices: +# # networks: +# # - traefik +# # container_name: immich_microservices +# # image: ghcr.io/immich-app/immich-server:latest +# # entrypoint: ["/bin/sh", "./start-microservices.sh"] +# # volumes: +# # - ${UPLOAD_LOCATION}:/usr/src/app/upload +# # env_file: +# # - .env +# # depends_on: +# # - redis +# # - database +# # - typesense +# # restart: always + +# # immich-machine-learning: +# # networks: +# # - traefik +# # container_name: immich_machine_learning +# # image: ghcr.io/immich-app/immich-machine-learning:latest +# # volumes: +# # - ${UPLOAD_LOCATION}:/usr/src/app/upload +# # - /srv/immich/model-cache:/cache +# # env_file: +# # - .env +# # restart: always + +# # immich-web: +# # networks: +# # - traefik +# # container_name: immich_web +# # image: ghcr.io/immich-app/immich-web:latest +# # entrypoint: ["/bin/sh", "./entrypoint.sh"] +# # env_file: +# # - .env +# # restart: always +# # labels: +# # - traefik.enable=true +# # - "traefik.http.routers.imm.entrypoints=websecure" +# # - "traefik.http.routers.imm.rule=Host(`imm.$DOMAIN_NAME`)" +# # - "traefik.http.routers.imm.tls.certresolver=letsencr" +# # # - "traefik.http.services.imm.loadbalancer.server.port=32400" + +# # typesense: +# # networks: +# # - traefik +# # container_name: immich_typesense +# # image: typesense/typesense:0.24.0 +# # environment: +# # - TYPESENSE_API_KEY=${TYPESENSE_API_KEY} +# # - TYPESENSE_DATA_DIR=/data +# # logging: +# # driver: none +# # volumes: +# # - /srv/immich/tsdata:/data +# # restart: always + +# # redis: +# # container_name: immich_redis +# # image: redis:6.2 +# # networks: +# # - traefik +# # restart: always + +# # database: +# # networks: +# # - traefik +# # container_name: immich_postgres +# # image: postgres:14 +# # env_file: +# # - .env +# # environment: +# # POSTGRES_PASSWORD: ${DB_PASSWORD} +# # POSTGRES_USER: ${DB_USERNAME} +# # POSTGRES_DB: ${DB_DATABASE_NAME} +# # PG_DATA: /var/lib/postgresql/data +# # volumes: +# # - /srv/immich/pgdata:/var/lib/postgresql/data +# # restart: always + +# # immich-proxy: +# # networks: +# # - traefik +# # container_name: immich_proxy +# # image: ghcr.io/immich-app/immich-proxy:release +# # environment: +# # # Make sure these values get passed through from the env file +# # - IMMICH_SERVER_URL +# # - IMMICH_WEB_URL +# # ports: +# # - 2283:8080 +# # logging: +# # driver: none +# # depends_on: +# # - immich-server +# # restart: always + + # services: -# immich-server: +# immich: +# image: ghcr.io/imagegenius/immich:latest +# container_name: immich # networks: # - traefik -# container_name: immich_server -# image: ghcr.io/immich-app/immich-server:latest -# entrypoint: ["/bin/sh", "./start-server.sh"] -# volumes: -# - ${UPLOAD_LOCATION}:/usr/src/app/upload -# env_file: -# - .env -# depends_on: -# - redis -# - database -# - typesense -# restart: always - -# immich-microservices: -# networks: -# - traefik -# container_name: immich_microservices -# image: ghcr.io/immich-app/immich-server:latest -# entrypoint: ["/bin/sh", "./start-microservices.sh"] -# volumes: -# - ${UPLOAD_LOCATION}:/usr/src/app/upload -# env_file: -# - .env -# depends_on: -# - redis -# - database -# - typesense -# restart: always - -# immich-machine-learning: -# networks: -# - traefik -# container_name: immich_machine_learning -# image: ghcr.io/immich-app/immich-machine-learning:latest -# volumes: -# - ${UPLOAD_LOCATION}:/usr/src/app/upload -# - /srv/immich/model-cache:/cache -# env_file: -# - .env -# restart: always - -# immich-web: -# networks: -# - traefik -# container_name: immich_web -# image: ghcr.io/immich-app/immich-web:latest -# entrypoint: ["/bin/sh", "./entrypoint.sh"] -# env_file: -# - .env -# restart: always # labels: # - traefik.enable=true # - "traefik.http.routers.imm.entrypoints=websecure" # - "traefik.http.routers.imm.rule=Host(`imm.$DOMAIN_NAME`)" # - "traefik.http.routers.imm.tls.certresolver=letsencr" -# # - "traefik.http.services.imm.loadbalancer.server.port=32400" - -# typesense: -# networks: -# - traefik -# container_name: immich_typesense -# image: typesense/typesense:0.24.0 +# - "traefik.http.services.imm.loadbalancer.server.port=7878" # environment: -# - TYPESENSE_API_KEY=${TYPESENSE_API_KEY} -# - TYPESENSE_DATA_DIR=/data -# logging: -# driver: none +# - PUID=1000 +# - PGID=1000 +# - TZ=Etc/UTC +# - DB_HOSTNAME=database +# - DB_USERNAME=postgres +# - DB_PASSWORD=a897scf-ac8c3aghjfghafwfgr44k-567cvhdf3odjkfg +# - DB_DATABASE_NAME=immich +# - REDIS_HOSTNAME=redis +# # - DB_PORT=5432 #optional +# # - REDIS_PORT=6379 #optional +# # - REDIS_PASSWORD= #optional +# # - MACHINE_LEARNING_HOST=0.0.0.0 #optional +# # - MACHINE_LEARNING_PORT=3003 #optional +# # - MACHINE_LEARNING_WORKERS=1 #optional +# # - MACHINE_LEARNING_WORKER_TIMEOUT=120 #optional # volumes: -# - /srv/immich/tsdata:/data -# restart: always +# - /srv/immich/config:/config +# - /srv/immich/uploads:/photos +# # - path_to_libraries:/libraries #optional +# ports: +# - 7878:8080 +# restart: unless-stopped +# # This container requires an external application to be run separately. +# # By default, ports for the databases are opened, be careful when deploying it +# # Redis: # redis: -# container_name: immich_redis -# image: redis:6.2 # networks: # - traefik -# restart: always - +# image: redis +# ports: +# - 6379:6379 +# container_name: redis + +# # PostgreSQL 14: # database: +# image: tensorchord/pgvecto-rs:pg14-v0.2.0 +# ports: +# - 5432:5432 +# container_name: database # networks: # - traefik -# container_name: immich_postgres -# image: postgres:14 -# env_file: -# - .env # environment: -# POSTGRES_PASSWORD: ${DB_PASSWORD} -# POSTGRES_USER: ${DB_USERNAME} -# POSTGRES_DB: ${DB_DATABASE_NAME} -# PG_DATA: /var/lib/postgresql/data +# POSTGRES_USER: postgres +# POSTGRES_PASSWORD: a897scf-ac8c3aghjfghafwfgr44k-567cvhdf3odjkfg +# POSTGRES_DB: immich # volumes: # - /srv/immich/pgdata:/var/lib/postgresql/data -# restart: always -# immich-proxy: -# networks: -# - traefik -# container_name: immich_proxy -# image: ghcr.io/immich-app/immich-proxy:release -# environment: -# # Make sure these values get passed through from the env file -# - IMMICH_SERVER_URL -# - IMMICH_WEB_URL -# ports: -# - 2283:8080 -# logging: -# driver: none -# depends_on: -# - immich-server -# restart: always +# # volumes: +# # pgdata: +# # model-cache: +# # tsdata: - -services: - immich: - image: ghcr.io/imagegenius/immich:latest - container_name: immich - networks: - - traefik - labels: - - traefik.enable=true - - "traefik.http.routers.imm.entrypoints=websecure" - - "traefik.http.routers.imm.rule=Host(`imm.$DOMAIN_NAME`)" - - "traefik.http.routers.imm.tls.certresolver=letsencr" - - "traefik.http.services.imm.loadbalancer.server.port=7878" - environment: - - PUID=1000 - - PGID=1000 - - TZ=Etc/UTC - - DB_HOSTNAME=database - - DB_USERNAME=postgres - - DB_PASSWORD=a897scf-ac8c3aghjfghafwfgr44k-567cvhdf3odjkfg - - DB_DATABASE_NAME=immich - - REDIS_HOSTNAME=redis - # - DB_PORT=5432 #optional - # - REDIS_PORT=6379 #optional - # - REDIS_PASSWORD= #optional - # - MACHINE_LEARNING_HOST=0.0.0.0 #optional - # - MACHINE_LEARNING_PORT=3003 #optional - # - MACHINE_LEARNING_WORKERS=1 #optional - # - MACHINE_LEARNING_WORKER_TIMEOUT=120 #optional - volumes: - - /srv/immich/config:/config - - /srv/immich/uploads:/photos - # - path_to_libraries:/libraries #optional - ports: - - 7878:8080 - restart: unless-stopped - -# This container requires an external application to be run separately. -# By default, ports for the databases are opened, be careful when deploying it -# Redis: - redis: - networks: - - traefik - image: redis - ports: - - 6379:6379 - container_name: redis - -# PostgreSQL 14: - database: - image: tensorchord/pgvecto-rs:pg14-v0.2.0 - ports: - - 5432:5432 - container_name: database - networks: - - traefik - environment: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: a897scf-ac8c3aghjfghafwfgr44k-567cvhdf3odjkfg - POSTGRES_DB: immich - volumes: - - /srv/immich/pgdata:/var/lib/postgresql/data - -# volumes: -# pgdata: -# model-cache: -# tsdata: - -networks: - traefik: - external: true \ No newline at end of file +# networks: +# traefik: +# external: true \ No newline at end of file