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):
mirror.yandex.ru/mirrors/download.proxmox.com/images/systemmirrors.tuna.tsinghua.edu.cn/proxmox/images/systemmirrors.ustc.edu.cn/proxmox/images/systemdownload.proxmox.com/images/system(fallback)
Debian APT внутри контейнера:
mirror.yandex.ru/debian- Selectel / TrueNetwork /
ftp.ru.debian.org 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.ioSKIP_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'
После установки
- Откройте
http://<IP-CT>:2283и пройдите мастер. - Медиатеку удобно смонтировать bind-mount’ом с хоста (
mp0:в конфиге CT) на/opt/immich/libraryили сменитьUPLOAD_LOCATIONв/opt/immich/.env. - HW-транскодинг / OpenVINO: см.
hwaccel.*.ymlв/opt/immichи документацию Immich. - Если Docker в unprivileged LXC не стартует — пересоздайте с
UNPRIVILEGED=0или проверьте nesting/apparmor в конфиге CT.
Требования
- Proxmox VE 8/9, amd64
- Интернет на хосте во время установки (зеркала РФ / GitHub / ghcr)
- Для фотоархива лучше SSD и запас диска сверх 20 ГиБ