Docker
March 23, 2025
Установка immich в докер с помощью Portainer.
Portainer, конечно же, должен быть установлен заранее.
В этой установке включено хардварное ускорение (для процессоров n100, n150) и вся конфигурация описана в одном yaml-файле.
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:release
user: "1026:100"
group_add:
- "937"
security_opt:
- no-new-privileges:true
cap_drop:
- NET_RAW
devices:
- /dev/dri:/dev/dri
volumes:
- /volume1/docker/immich/library:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
# ниже для подключения стандартных папок synology photos
# в качестве внешних библиотек
- /volume1/homes/sergey/Photos:/mnt/media/sergey:ro
- /volume1/homes/olga/Photos:/mnt/media/olga:ro
environment:
- DB_PASSWORD=MyStrongPASS
- DB_USERNAME=postgres
- DB_DATABASE_NAME=immich
- TZ=Europe/Samara
- REDIS_HOSTNAME=immich_redis
#- IMMICH_LOG_LEVEL=log
- IMMICH_LOG_LEVEL=warn
ports:
- '2283:2283'
depends_on:
- immich_redis
- database
restart: unless-stopped
healthcheck:
#disable: false
disable: true
networks:
- immich
immich-machine-learning:
container_name: immich_ml
image: ghcr.io/immich-app/immich-machine-learning:release-openvino
user: "1026:100"
group_add:
- "937"
device_cgroup_rules:
- 'c 189:* rmw'
security_opt:
- no-new-privileges:true
cap_drop:
- NET_RAW
volumes:
- /volume1/docker/immich/ml_cache:/cache
- /volume1/docker/immich/matplotlib:/matplotlib
- /dev/bus/usb:/dev/bus/usb
devices:
- /dev/dri:/dev/dri
environment:
- MPLCONFIGDIR=/matplotlib
- DB_PASSWORD=MyStrongPASS
- DB_USERNAME=postgres
- DB_DATABASE_NAME=immich
- TZ=Europe/Samara
- REDIS_HOSTNAME=immich_redis
- MACHINE_LEARNING_MODEL_TTL=3600
#- IMMICH_LOG_LEVEL=log
#- IMMICH_LOG_LEVEL=warn
restart: unless-stopped
healthcheck:
#disable: false
disable: true
networks:
- immich
immich_redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-bookworm
user: "1026:100"
security_opt:
- no-new-privileges:true
cap_drop:
- NET_RAW
environment:
- TZ=Europe/Samara
volumes:
- /volume1/docker/immich/redis:/data
sysctls:
- net.core.somaxconn=511
healthcheck:
#test: redis-cli ping || exit 1
disable: true
command: redis-server --loglevel warning
restart: unless-stopped
networks:
- immich
database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.2-pgvectors0.2.0
user: "1026:100"
security_opt:
- no-new-privileges:true
cap_drop:
- NET_RAW
environment:
REDIS_HOSTNAME: immich_redis
TZ: Europe/Samara
POSTGRES_PASSWORD: MyStrongPASS
POSTGRES_USER: postgres
POSTGRES_DB: immich
POSTGRES_INITDB_ARGS: '--data-checksums'
# Раскомментируйте строчку ниже, если у Вас не SSD!
# DB_STORAGE_TYPE: 'HDD'
volumes:
- /volume1/docker/immich/pg_db:/var/lib/postgresql/data
restart: unless-stopped
networks:
- immich
networks:
immich:
name: immich_net
external: false
- В строчках user: "1026:100" (все вхождения) измените 1026 и 100 на свои значение user и group.
- Директории /volume1/docker/immich/* и /volume1/homes/*/Photos измените на желаемые и создайте заранее.
- В разделах group_add (все вхождения) замените значение 937 на свое, узнать его можно командами: ls -la /dev/dri и cat /etc/group | grep videodriver.
- В разделах healthcheck: можно включить проверку здоровья контейнеров.
- Измените фразу MyStrongPASS (все вхождения) - придумайте свой пароль базы данных.
- В параметре TZ=Europe/Samara измените часовой пояс на свой