README.md

Immich LXC для Proxmox (РФ, без VPN)

Автономный установщик Immich в LXC на Proxmox VE. Без телеметрии community-scripts и без загрузки build.func с GitHub: шаблон Debian и APT идут через зеркала, доступные из РФ; сам Immich ставится официальным Docker Compose (как рекомендует Immich).

Основан на идее community-scripts Immich (MIT). Оригинал community-scripts — нативная сборка из исходников (компиляция libjxl/libvips и т.д. 15 мин–2 ч и десятки клонов с GitHub); для РФ это ненадёжно, поэтому здесь — Docker.

Зачем Immich, а не Nextcloud: статья Nextcloud или Immich: фото с телефона на своём сервере — когда брать облако файлов (Nextcloud), а когда фотоархив с автозагрузкой, лицами и поиском (Immich); там же ручная установка Immich через Docker и ориентиры по RAM.

Каталог всех установщиков: Скрипты Proxmox для РФ — список адаптированных community-scripts под запуск в России без VPN: зеркала APT и образов, готовые команды для Proxmox VE и исходники на GitFlic.

Примечания CT: Имя (РФ) · LXC → Веб → Каталог → Исходник → Статья (единый шаблон всех *-ct-ru).

Что изменено относительно оригинала

Оригинал Эта версия
Тянет build.func / core с GitHub Полностью автономный bash
Нативная сборка Immich из исходников Официальный Docker Compose
Шаблон через pveam → download.proxmox.com Сначала Yandex / Tsinghua / USTC
Debian APT как в шаблоне Каскад зеркал РФ
Образы только ghcr.io ghcr.io или зеркало ghcr.nju.edu.cn
Диалоги на английском Русский интерфейс
Телеметрия community-scripts Нет

Зеркала

Шаблон LXC (debian-13-standard_…_amd64.tar.zst):

  1. mirror.yandex.ru/mirrors/download.proxmox.com/images/system
  2. mirrors.tuna.tsinghua.edu.cn/proxmox/images/system
  3. mirrors.ustc.edu.cn/proxmox/images/system
  4. download.proxmox.com/images/system (fallback)

Debian APT внутри контейнера:

  1. mirror.yandex.ru/debian
  2. Selectel / TrueNetwork / ftp.ru.debian.org
  3. deb.debian.org (fallback)

Docker-образы Immich (ghcr.io/immich-app/…):

  • GHCR_MIRROR=auto / daocloud (по умолчанию) — ghcr.m.daocloud.io/...
  • GHCR_MIRROR=nju — ghcr.nju.edu.cn/...
  • GHCR_MIRROR=direct — прямой ghcr.io
  • SKIP_ML=1 — не качать ML (~270 МБ) при первой установке

Digest @sha256:… снимаются. Размер пакета ~1.1 ГБ (server ~600 + postgres ~200 + ML ~270 + redis). Из РФ без VPN 20–90+ минут при живом прогресс-баре — норма, не зависание.

Если совсем нет прогресса >15 мин без смены ⣿ — см. команды ниже.

Можно зафиксировать: DEBIAN_MIRROR, TEMPLATE_MIRROR, TEMPLATE_NAME, IMMICH_VERSION, GHCR_MIRROR.

Установка

На хосте Proxmox VE (shell узла):

bash <(curl -fsSL 'https://gitflic.ru/project/kiberlis/immich-ct-ru/blob/raw?file=immich-ct.sh')

(Альтернатива bash -c "$(curl …)" тоже работает, но может исказить рамку баннера из‑за \.)

Параметры по умолчанию

  • Debian 13 LXC, 4 CPU / 6144 МиБ / диск 20 ГиБ
  • unprivileged, nesting + keyctl (для Docker)
  • DHCP на выбранном vmbr*
  • проброс /dev/dri (если есть на хосте)
  • веб-интерфейс: порт 2283
  • данные: /opt/immich/library, БД: /opt/immich/postgres

Без диалогов

PVE_ASSUME_YES=1 BRIDGE=vmbr0 STORAGE=local-lvm TEMPLATE_STORAGE=local \
  bash immich-ct.sh

Переменные: CTID, HN, CORE_COUNT, RAM_SIZE, DISK_SIZE, BRIDGE, VLAN, MTU, MAC, UNPRIVILEGED, ENABLE_GPU (yes/no), START_CT, ONBOOT, PASSWORD, SSH_KEYS, DEBIAN_MIRROR, TEMPLATE_MIRROR, IMMICH_VERSION, GHCR_MIRROR, PVE_ASSUME_YES=1.

Доустановка в уже созданный CT:

PVE_RESUME_CTID=113 bash immich-ct.sh

Обновление

Тот же скрипт внутри контейнера Immich:

bash <(curl -fsSL 'https://gitflic.ru/project/kiberlis/immich-ct-ru/blob/raw?file=immich-ct.sh')

Обновит docker-compose.yml (с GitHub / прокси) и выполнит docker compose pull && up -d. Пароль БД из текущего .env сохраняется.

Зависший pull образов

На уже созданном CT (пример ID 113):

pct exec 113 -- bash -lc 'cd /opt/immich
sed -i -E "s|m\\.daocloud\\.io/ghcr\\.io/|ghcr.io/|g; s|ghcr\\.m\\.daocloud\\.io/|ghcr.io/|g; s|ghcr\\.nju\\.edu\\.cn/|ghcr.io/|g" docker-compose.yml
sed -i -E "s|(^[[:space:]]*image:[[:space:]]*)ghcr\\.io/|\\1ghcr.m.daocloud.io/|g" docker-compose.yml
sed -i -E "s|(@sha256:[0-9a-f]+)||g" docker-compose.yml
grep image: docker-compose.yml
docker compose pull redis
docker compose pull database
docker compose pull immich-server
docker compose pull immich-machine-learning
docker compose up -d'

После установки

  1. Откройте http://<IP-CT>:2283 и пройдите мастер.
  2. Медиатеку удобно смонтировать bind-mount’ом с хоста (mp0: в конфиге CT) на /opt/immich/library или сменить UPLOAD_LOCATION в /opt/immich/.env.
  3. HW-транскодинг / OpenVINO: см. hwaccel.*.yml в /opt/immich и документацию Immich.
  4. Если Docker в unprivileged LXC не стартует — пересоздайте с UNPRIVILEGED=0 или проверьте nesting/apparmor в конфиге CT.

Требования

  • Proxmox VE 8/9, amd64
  • Интернет на хосте во время установки (зеркала РФ / GitHub / ghcr)
  • Для фотоархива лучше SSD и запас диска сверх 20 ГиБ
Описание
Immich LXC для Proxmox VE (РФ, без VPN). Debian + Docker Compose, зеркала РФ.
Конвейеры
0 успешных
0 с ошибкой
Разработчики