services:
immich-server:
container_name: immich_server
user: 1001:10 #PUID:PGID angeben
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
volumes:
- /volume2/photo:/mnt/media/photo:ro #Pfad zu externen Medien (optional)
- /volume2/video:/mnt/media/video:ro #Pfad zu externen Medien (optional)
- ds1522photo:/mnt/media/ds1522photo:ro #Pfad zu externen Medien (optional)
- ${UPLOAD_LOCATION}:/usr/src/app/upload:rw
env_file:
- stack.env
ports:
- '2283:2283'
depends_on:
- redis
- database
restart: unless-stopped
healthcheck:
disable: false
immich-machine-learning:
container_name: immich_machine_learning
user: 1001:10 #PUID:PGID angeben
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
volumes:
- /volume1/docker/immich/cache:/cache:rw #Ordnerpfad vor dem : anpassen
- /volume1/docker/immich/pcache:/.cache:rw #Ordnerpfad vor dem : anpassen
- /volume1/docker/immich/config:/.config:rw #Ordnerpfad vor dem : anpassen
- /volume1/docker/immich/upload:/usr/src/app/upload:rw #Der Pfad vor dem : entspricht der Variable UPLOAD_LOCATION in der Datei stack.env
env_file:
- stack.env
restart: unless-stopped
healthcheck:
disable: false
redis:
container_name: immich_redis
user: 1001:10 #PUID:PGID angeben
image: docker.io/redis:6.2-alpine@sha256:905c4ee67b8e0aa955331960d2aa745781e6bd89afc44a8584bfd13bc890f0ae
healthcheck:
test: redis-cli ping || exit 1
volumes:
- /volume1/docker/immich/redis:/data:rw #Ordnerpfad vor dem : anpassen
restart: unless-stopped
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="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1;
Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --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: unless-stopped
volumes:
model-cache:
ds1522photo:
driver_opts:
type: cifs
o: 'iocharset=utf8,username=xxx,password=yyy,ro' # change to `ro` if read only desired
device: '//ds1522/photo'