Immich: власна хмара для фото й відео на VPS
Immich — це сервіс із самостійним розгортанням для зберігання та автоматичного завантаження фото й відео. Він має мобільні застосунки, вебінтерфейс, альбоми, розумний пошук і розпізнавання облич, а бібліотека зберігається на вибраному вами сервері.
Нижче розглянемо вимоги Immich, встановлення на Ubuntu за допомогою Docker Compose, налаштування HTTPS, підключення телефона та зовнішні резервні копії.
Immich за шість кроків
- Створіть Linux VPS із достатнім обсягом оперативної пам’яті та диска.
- Спрямуйте піддомен, наприклад
photos.example.com, на IP-адресу сервера. - Встановіть Docker і завантажте офіційну конфігурацію Immich.
- Вкажіть шляхи до медіатеки й бази даних, а потім запустіть контейнери.
- Закрийте внутрішній порт і ввімкніть HTTPS.
- Встановіть мобільний застосунок і налаштуйте зовнішню резервну копію.
Що таке Immich
Immich — це застосунок із відкритим кодом для керування власною бібліотекою фото та відео. Фотографії відображаються на часовій шкалі, їх можна об’єднувати в альбоми, знаходити через пошук і автоматично завантажувати з телефона на сервер.
Головна відмінність від звичайного хмарного сервісу для фото — контроль над серверною частиною. Файли зберігаються на вашому VPS або домашньому сервері, але власник відповідає за вільне місце, оновлення, безпеку та резервні копії.
| Параметр | Хмарний сервіс для фото | Immich |
|---|---|---|
| Де зберігаються файли | На інфраструктурі провайдера | На вашому сервері |
| Обслуговування | Виконує провайдер | Виконує власник |
| Витрати | Тариф залежно від обсягу сховища | VPS, дисковий простір і резервні копії |
Immich сам по собі не є резервною копією. Якщо фотографії існують лише на одному VPS, відмова диска або випадкове видалення все одно може знищити архів.
Основні можливості Immich
- Автоматичне завантаження. Застосунки для Android та iOS завантажують фото й відео з вибраних альбомів. За замовчуванням використовується Wi-Fi, а файли, які вже існують, пропускаються за контрольною сумою.
- Розумний пошук. Сервіс уміє шукати людей, місця, дати, камери, текст на зображенні та опис вмісту. Обличчя групуються, після чого їм можна призначити імена.
- Альбоми та спільний доступ. Immich підтримує кількох користувачів, спільні альбоми, доступ для партнера та публічні посилання із паролем і терміном дії.
- Мапа й метадані. Immich читає EXIF-дані, показує місце зйомки, створює спогади та підтримує обране, архів і зовнішні бібліотеки.
Машинне навчання створює найбільше навантаження на CPU та RAM під час початкового імпорту. Після створення мініатюр та індексів щоденне споживання ресурсів зазвичай нижче.
Вимоги до сервера Immich
Офіційні вимоги для актуальних версій такі:
- 64-бітна Linux- або Unix-подібна система;
- щонайменше 2 ядра CPU, рекомендовано 4;
- щонайменше 6 ГБ RAM, рекомендовано 8 ГБ;
- Docker Engine із плагіном
docker compose; - локальний SSD для бази даних PostgreSQL;
- місце для оригіналів, мініатюр і перекодованих відео.
Immich може працювати на сервері з 4 ГБ RAM, якщо вимкнути функції машинного навчання. Для розпізнавання облич і розумного пошуку краще одразу вибрати 8 ГБ.
Мініатюри та перекодовані файли збільшують розмір медіатеки в середньому на 10–20%. Для архіву на 200 ГБ виділіть щонайменше 240–260 ГБ. Каталог бази даних DB_DATA_LOCATION слід зберігати на локальному SSD, а не на мережевому диску.
Практична стартова конфігурація — 4 vCPU, 8 ГБ RAM, Ubuntu 24.04 LTS і SSD із запасом місткості на 20–30% більшим за розмір вихідної бібліотеки. Виділена відеокарта не потрібна, хоча вона може пришвидшити обробку великого архіву.
Як встановити Immich на VPS
У прикладі використано Ubuntu 24.04 і піддомен photos.example.com.
1. Налаштуйте DNS і підготуйте Ubuntu
Створіть DNS-запис A, що вказує на IPv4-адресу VPS. Потім підключіться через SSH:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enableНе закривайте поточну SSH-сесію, доки не перевірите, що нове підключення працює.
2. Встановіть Docker і Docker Compose
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose versionВикористовуйте саме команду docker compose: застаріла команда docker-compose більше не підтримується проєктом.
3. Завантажте та налаштуйте Immich
mkdir -p /opt/immich /srv/immich-data
cd /opt/immich
curl -L -o docker-compose.yml \
https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
curl -L -o .env \
https://github.com/immich-app/immich/releases/latest/download/example.envВідкрийте файл:
nano /opt/immich/.envЗмініть основні параметри:
UPLOAD_LOCATION=/srv/immich-data
DB_DATA_LOCATION=/opt/immich/postgres
TZ=Europe/Berlin
DB_PASSWORD=REPLACE_WITH_A_LONG_PASSWORDВкажіть власний часовий пояс. Пароль PostgreSQL має містити латинські літери та цифри; команда openssl rand -hex 24 згенерує випадкове значення. Інші рядки залиште такими, як у поточному файлі example.env.
4. Закрийте внутрішній порт і запустіть контейнери
У docker-compose.yml знайдіть порт сервісу immich-server:
ports:
- '2283:2283'Замініть його на:
ports:
- '127.0.0.1:2283:2283'Тепер порт доступний лише з самого VPS. Запустіть сервіс:
cd /opt/immich
docker compose up -d
docker compose psДля діагностики використовуйте docker compose logs --tail=200.
5. Увімкніть HTTPS за допомогою Caddy
apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
photos.example.com {
reverse_proxy 127.0.0.1:2283
}
EOF
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddyCaddy автоматично запросить сертифікат, якщо DNS вказує на VPS, а порти 80 і 443 доступні. Immich має працювати в корені домену або піддомену; адреса на кшталт example.com/immich не підтримується.
6. Створіть адміністратора та підключіть телефон
Відкрийте https://photos.example.com. Перший зареєстрований користувач стає адміністратором і може створювати додаткові облікові записи.
Встановіть Immich з App Store або Google Play. На екрані входу введіть адресу без /api:
https://photos.example.comВиберіть альбоми та ввімкніть резервне копіювання. Перший імпорт може тривати деякий час: сервер створює мініатюри, розпізнає обличчя, індексує дані для пошуку та обробляє відео.
Оновлення Immich
Перед оновленням прочитайте примітки до випуску, особливо під час переходу на нову мажорну версію:
cd /opt/immich
docker compose pull
docker compose up -d
docker image pruneСпочатку оновіть мобільні застосунки, а потім сервер. Відкат бази даних до старішої версії може не підтримуватися, якщо не надано окремих інструкцій.
Резервне копіювання Immich
Immich автоматично створює дампи PostgreSQL, але вони містять лише базу даних і метадані, а не фото та відео. Для повного відновлення збережіть:
- увесь каталог
/srv/immich-data; /opt/immich/.envіdocker-compose.yml;- конфігурацію Caddy.
Копія на тому самому VPS не захищає від відмови диска або видалення сервера. Надсилайте дані на окремий сервер, NAS або в об’єктне сховище та дотримуйтеся стратегії резервного копіювання 3-2-1. Періодично тестуйте відновлення, а не лише перевіряйте наявність файлів резервних копій.
Який VPS вибрати для Immich
Для повної функціональності з розпізнаванням облич і розумним пошуком варто вибрати VPS щонайменше з 4 vCPU та 8 ГБ RAM. Розраховуйте розмір диска за медіатекою, додавши запас для мініатюр, відео та зростання архіву.
Linux VPS від tropic.host зі статичною IP-адресою та SSD-сховищем підходить для цього завдання. Можна почати з конфігурації з 8 ГБ RAM і збільшувати ресурси в міру зростання бібліотеки. Зберігайте базу даних PostgreSQL на швидкому локальному диску, а резервну копію — за межами цього VPS.
VPS зручний для цілодобового доступу з будь-якої мережі. Для архіву на кілька терабайтів домашній сервер може бути дешевшим, але електроживлення, зовнішній доступ і резервування доведеться забезпечити самостійно.
Обмеження Immich
Самостійне розгортання не гарантує надійності. Слабкий пароль, відкритий порт 2283, застарілі контейнери або відсутність зовнішньої резервної копії створюють ризик втрати даних.
Immich також не є точною копією Google Photos або iCloud: можливості редагування та фонова синхронізація відрізняються, а швидкість аналізу залежить від обладнання. Перш ніж переносити єдиний архів, протестуйте сервіс на невеликій бібліотеці.
Висновок
Immich дає змогу створити власну фотогалерею з мобільним завантаженням, альбомами, розпізнаванням облич, пошуком і спільним доступом. Для актуальної версії найкраще підготувати Linux VPS із 4 ядрами, 8 ГБ RAM і SSD щонайменше з 20–30% вільної місткості.
Після встановлення налаштуйте HTTPS, оновлення та зовнішню резервну копію каталогу з медіафайлами разом із базою даних. Від втрати фото захищає саме резервна копія, а не сам факт використання власного сервера.
FAQ
Чи безплатний Immich?
Сервер Immich має відкритий код і може працювати без обов’язкової підписки. Водночас доведеться платити за VPS, домен, дисковий простір і резервні копії.
Скільки RAM потрібно Immich?
Офіційний мінімум — 6 ГБ RAM, а рекомендований обсяг — 8 ГБ. Із 4 ГБ доведеться вимкнути машинне навчання.
Чи можна встановити Immich без домену?
Технічно так, але для постійного доступу з телефона краще використовувати домен і HTTPS. Це захищає автентифікацію та передавання файлів.
Чи замінює Immich резервну копію фото?
Ні. Окремо копіюйте медіатеку та базу даних на інший пристрій або в інше місце.
Чи можна перенести наявний фотоархів?
Так. Файли можна завантажити через вебінтерфейс або CLI, а також підключити каталог як зовнішню бібліотеку. Перед масштабним імпортом створіть копію вихідних даних.
