Immich: свой Google Photos в homelab

Боль
Фото в чужом облаке — это «взято напрокат». Лимит 15 ГБ, подписки, внезапные изменения правил, да и приватность так себе. Хотелось, чтобы снимки жили дома, а не «где‑то у дяди».
Что такое Immich
Immich — self‑hosted менеджер фото и видео: – авто‑бэкап с телефона (iOS/Android); – локальный ML: распознавание лиц и объектов, поиск по ним; – альбомы и совместный доступ (семье/друзьям); – всё работает у вас, без чьих‑то клаудов и подписок.

Как подняли (кратко)
Инфраструктура — отдельный LXC‑контейнер (ID не публикуем), внутри docker compose, снаружи — reverse proxy на поддомене photos.example-lab.ru.
Минимальный compose (CPU‑вариант, дальше настраивайте под себя):
version: "3.9"
services:
immich-server:
image: ghcr.io/immich-app/immich-server:release
depends_on: [immich-db, immich-redis, immich-ml]
environment:
- DB_HOST=immich-db
- DB_PASSWORD=change-me
- REDIS_HOST=immich-redis
ports:
- "2283:2283" # HTTP API/UI
immich-ml:
image: ghcr.io/immich-app/immich-machine-learning:release
# Для GPU добавьте проброс/драйверы; CPU тоже работает
immich-db:
image: postgres:14
environment:
- POSTGRES_PASSWORD=change-me
volumes:
- db:/var/lib/postgresql/data
immich-redis:
image: redis:7-alpine
volumes:
db:
Reverse proxy (Caddy), прячем сервис за своим именем:
photos.example-lab.ru {
encode zstd gzip
reverse_proxy 198.51.100.15:2283
}
Примечания: – LXC: включить nesting, keyctl/cgroups v2; для GPU — аккуратно с группами устройств и безопасностью. – Бэкапы кладём на отдельный диск/том. – HTTPS — автоматический (Let’s Encrypt) на прокси.
Фишки в деле
- Телефон сам заливает новые кадры в фоне.
- Поиск по лицам/объектам — работает локально; облаку ничего не отправляется.
- Шаринг альбомов внутри семьи — как в привычных сервисах.
- Никаких ежемесячных платежей: только ваше железо и диск.

Грабли и нюансы
- Docker в LXC — ок, если включены нужные флаги; следите за лимитами памяти/времени сборки.
- ML‑контейнер на CPU терпим, но лица индексируются дольше; с GPU — заметно бодрее и экономнее по энергозатратам.
- Не забывайте про резервные копии базы и медиатеки; и про размер tmp при массовом импорте.
Итог
Immich закрывает боль «чужого» облака: фото у вас дома, поиск умный, бэкап автоматический. Поставили один раз — и забыли. А если вырастет — масштабируете железо, а не подписку.
Ссылки
- GitHub: https://github.com/immich-app/immich
- Документация: https://immich.app/docs