8.2.22 Встановлення та налаштування PhotoPrism

PhotoPrism — це сучасна особиста фотогалерея з відкритим вихідним кодом, яка працює на базі штучного інтелекту. Вона дозволяє легко організовувати, переглядати та ділитися вашою колекцією фотографій і відео. PhotoPrism використовує машинне навчання для автоматичної класифікації зображень, розпізнавання облич і визначення місця зйомки, значно спрощуючи керування великим архівом медіафайлів.
У цій статті ми детально розглянемо процес встановлення та налаштування PhotoPrism на операційній системі Ubuntu 24.04, використовуючи Docker Compose. Ви дізнаєтеся, як підготувати сервер, запустити застосунок, налаштувати брандмауер і виконати початкову конфігурацію, а також як імпортувати медіафайли й робити резервне копіювання даних.
Підготовка сервера
Вимоги
- Віртуальний або виділений сервер з установленою Ubuntu 24.04 LTS.
- Мінімум 2 ГБ оперативної пам’яті та 20 ГБ вільного дискового простору.
- root-доступ або користувач із правами- sudo.
- Встановлені Docker і Docker Compose. У рамках цієї статті їхня інсталяція не розглядається.
Змінні середовища
У процесі встановлення та налаштування PhotoPrism вам потрібно буде замінити такі значення-placeholder на власні:
- YOUR_ADMIN_USERNAME: бажане ім’я користувача для входу в PhotoPrism.
- YOUR_ADMIN_PASSWORD: надійний пароль для вашого адміністративного користувача PhotoPrism.
- YOUR_SERVER_IP: IP-адреса вашого сервера Ubuntu.
- PATH_TO_YOUR_PHOTOS: повний шлях до директорії з вашими фотографіями на сервері.
Оновлення системи
Перш ніж приступити до встановлення PhotoPrism, рекомендується оновити всі системні пакети до останніх версій. Це забезпечить стабільність і безпеку вашої системи.
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
- Команда sudo apt updateоновлює список доступних пакетів.
- Команда sudo apt upgrade -yвстановлює всі доступні оновлення пакетів без запиту підтвердження (-y).
- Команда sudo apt autoremove -yвидаляє застарілі пакети, які більше не потрібні системі.
Створення директорії для PhotoPrism
Створіть директорію, у якій зберігатимуться файли конфігурації PhotoPrism і дані. Рекомендується використовувати /opt/photoprism.
sudo mkdir -p /opt/photoprism
- Опція -pгарантує створення всіх необхідних батьківських директорій, якщо вони не існують.
Завантаження файлу конфігурації Docker Compose
Завантажте офіційний файл docker-compose.yml для PhotoPrism. Цей файл містить визначення всіх необхідних сервісів (PhotoPrism, MariaDB), їхні налаштування та залежності.
sudo wget -O /opt/photoprism/docker-compose.yml https://dl.photoprism.app/docker/compose.yaml
- wgetвикористовується для завантаження файлу за вказаним URL.
- Опція -O /opt/photoprism/docker-compose.ymlвказує, що завантажений файл має бути збережений якdocker-compose.ymlу директорії/opt/photoprism.

Налаштування локального зберігання даних і файлу Docker Compose
За замовчуванням PhotoPrism використовує Docker named volumes для зберігання даних. Для зручнішого керування й резервного копіювання даних на хості рекомендується використовувати локальні директорії (bind mounts).
Спочатку створіть необхідні директорії для зберігання даних PhotoPrism і бази даних MariaDB:
sudo mkdir -p /opt/photoprism/data/storage \
                /opt/photoprism/data/originals \
                /opt/photoprism/data/database \
                /opt/photoprism/data/settings \
                /opt/photoprism/data/cache \
                /opt/photoprism/data/sidecar
Тепер відредагуйте завантажений файл docker-compose.yml, щоб він використовував ці локальні директорії замість named volumes.
sudo nano /opt/photoprism/docker-compose.yml
У відкритому файлі знайдіть секцію services -> photoprism -> volumes. Замініть усі рядки, що починаються з photoprism_, на шляхи до локальних директорій, використовуючи відносні шляхи ./data/....
Приклад змін для сервісу photoprism:
Спочатку (приблизно):
    volumes:
      - photoprism_storage:/photoprism/storage
      - photoprism_originals:/photoprism/originals
      - photoprism_settings:/photoprism/settings
      - photoprism_cache:/photoprism/cache
      - photoprism_sidecar:/photoprism/sidecar
Змініть на:
    volumes:
      - /opt/photoprism/data/storage:/photoprism/storage
      - /opt/photoprism/data/originals:/photoprism/originals
      - /opt/photoprism/data/settings:/photoprism/settings
      - /opt/photoprism/data/cache:/photoprism/cache
      - /opt/photoprism/data/sidecar:/photoprism/sidecar
Тепер знайдіть секцію services -> mariadb -> volumes. Змініть рядок із томом бази даних:
Спочатку (приблизно):
    volumes:
      - photoprism_database:/var/lib/mysql
Змініть на:
    volumes:
      - ./data/database:/var/lib/mysql
Нарешті, прокрутіть файл до самого кінця та видаліть увесь блок volumes:, який визначає named volumes, оскільки вони більше не використовуватимуться.
Спочатку (приблизно, наприкінці файлу):
volumes:
  photoprism_storage:
  photoprism_originals:
  photoprism_database:
  photoprism_settings:
  photoprism_cache:
  photoprism_sidecar:
Видаліть цей блок повністю.
Збережіть зміни й закрийте файл (Ctrl+O, Enter, Ctrl+X).
Налаштування змінних середовища PhotoPrism
Для зручного керування конфігурацією PhotoPrism, включно з обліковими даними адміністратора, створіть файл .env у директорії PhotoPrism.
sudo nano /opt/photoprism/.env
Додайте такий вміст у відкритий файл. Замініть YOUR_ADMIN_USERNAME і YOUR_ADMIN_PASSWORD на бажані облікові дані адміністратора PhotoPrism.
PHOTOPRISM_ADMIN_USER=YOUR_ADMIN_USERNAME
PHOTOPRISM_ADMIN_PASSWORD=YOUR_ADMIN_PASSWORD
- PHOTOPRISM_ADMIN_USER: ім’я користувача для входу у вебінтерфейс PhotoPrism.
- PHOTOPRISM_ADMIN_PASSWORD: пароль для вказаного адміністративного користувача.
Збережіть зміни й закрийте файл (Ctrl+O, Enter, Ctrl+X).
Запуск PhotoPrism
Перейдіть у директорію PhotoPrism і запустіть сервіси, визначені у файлі docker-compose.yml.
cd /opt/photoprism/
sudo docker compose up -d
- Команда cd /opt/photoprism/переводить вас у робочу директорію PhotoPrism.
- Команда sudo docker compose up -dзапускає всі сервіси (контейнери) у фоновому режимі (-d, detached mode). Docker Compose автоматично завантажить потрібні образи Docker, якщо вони ще не завантажені.

Перевірка статусу PhotoPrism
Після запуску переконайтеся, що всі контейнери PhotoPrism успішно запущені та працюють.
sudo docker compose ps
Вивід має показати статус running для всіх сервісів PhotoPrism (зазвичай photoprism і mariadb).

Якщо ви зіткнулися з проблемами, можна переглянути логи контейнерів для діагностики:
sudo docker compose logs -f
Натисніть Ctrl+C, щоб вийти з режиму перегляду логів.

Налаштування брандмауера
Якщо на вашому сервері активний брандмауер UFW (Uncomplicated Firewall), потрібно відкрити порт 2342 для доступу до вебінтерфейсу PhotoPrism. Також рекомендується відкрити порти 80 і 443, якщо ви плануєте використовувати реверс-проксі (наприклад, Nginx) з SSL-сертифікатом.
UFW
Перевірте статус UFW:
sudo ufw status
Дозвольте потрібні порти:
sudo ufw allow 2342/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Якщо UFW не активний, увімкніть його:
sudo ufw enable
Підтвердьте дію, ввівши y, якщо буде запит.

iptables
sudo iptables -A INPUT -p tcp --dport 2342 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Доступ до вебінтерфейсу PhotoPrism
Після успішного запуску PhotoPrism і налаштування брандмауера ви можете отримати доступ до вебінтерфейсу PhotoPrism, відкривши браузер і перейшовши за таким посиланням:
http://YOUR_SERVER_IP:2342
Замініть YOUR_SERVER_IP на фактичну IP-адресу вашого сервера Ubuntu.

Початкове налаштування та створення адміністратора
Під час першого доступу до вебінтерфейсу PhotoPrism вам буде запропоновано увійти в систему. Використовуйте облікові дані, які ви вказали у файлі .env раніше:
- Ім’я користувача: YOUR_ADMIN_USERNAME
- Пароль: YOUR_ADMIN_PASSWORD
Після входу ви потрапите на головну сторінку PhotoPrism.

Імпорт фотографій
PhotoPrism автоматично сканує та індексує фотографії, розміщені у визначеній директорії. Оскільки ви налаштували bind mounts, ваші оригінальні фотографії мають знаходитись у директорії /opt/photoprism/data/originals на хост-системі.
Щоб імпортувати фотографії, скопіюйте їх у цю директорію:
sudo cp -r PATH_TO_YOUR_PHOTOS /opt/photoprism/data/originals
- Замініть PATH_TO_YOUR_PHOTOSна фактичний шлях до ваших фотографій на сервері.
- Опція -rвикористовується для рекурсивного копіювання директорій.
Після копіювання файлів перейдіть у вебінтерфейс PhotoPrism, натисніть кнопку Імпорт (Import) у лівому меню, щоб почати процес сканування й індексації нових фотографій.
Оновлення PhotoPrism
Щоб оновити PhotoPrism до останньої стабільної версії, виконайте такі кроки. Процес зводиться до зупинки контейнерів, завантаження нових образів і повторного запуску.
Перейдіть у директорію PhotoPrism:
cd /opt/photoprism/
Зупиніть запущені контейнери:
sudo docker compose down
Завантажте нові образи Docker:
sudo docker compose pull
Запустіть контейнери з оновленими образами:
sudo docker compose up -d
Резервне копіювання даних
Регулярне резервне копіювання даних PhotoPrism вкрай важливе для запобігання втраті фотографій і метаданих. Оскільки ви використовуєте bind mounts, усі важливі дані PhotoPrism (оригінали, мініатюри, кеш, індекс і база даних) зберігаються в директорії /opt/photoprism/data на вашому хості.
Важливо: для забезпечення цілісності даних, особливо бази даних, при резервному копіюванні рекомендується спочатку зупинити сервіси PhotoPrism за допомогою sudo docker compose down. Після завершення резервного копіювання ви можете знову запустити їх командою sudo docker compose up -d.
Приклад команди для створення архіву резервної копії:
sudo tar -czvf photoprism_backup_$(date +%Y%m%d).tar.gz /opt/photoprism/data /opt/photoprism/docker-compose.yml /opt/photoprism/.env
- Ця команда створює стиснутий архів (.tar.gz) з усіма важливими файлами й директоріями PhotoPrism (дані, конфігурація Docker Compose і змінні середовища).
- $(date +%Y%m%d)додає поточну дату до імені файлу резервної копії, що зручно для відстеження.
Поширені помилки
| Помилка / Симптом | Причина | Рішення | Діагностика | 
|---|---|---|---|
| Неможливо отримати доступ до вебінтерфейсу PhotoPrism. | Порт 2342заблокований брандмауером. | Дозвольте порт 2342в UFW:sudo ufw allow 2342/tcpiptables:sudo iptables -A INPUT -p tcp --dport 2342 -j ACCEPT | sudo ufw status | 
| Контейнери PhotoPrism не запускаються або постійно перезапускаються. | Недостатньо системних ресурсів (ОЗП, дисковий простір) або конфлікт портів. | Перевірте системні логи ( dmesg -T), логи Docker Compose (sudo docker compose logs). Переконайтеся, що немає інших застосунків, які використовують порт2342. | sudo docker compose ps,sudo docker compose logs photoprism | 
| Помилка доступу до бази даних (MariaDB). | Неправильні облікові дані або пошкоджена база даних. | Переконайтеся, що змінні PHOTOPRISM_ADMIN_USERіPHOTOPRISM_ADMIN_PASSWORDправильно вказані у файлі.env. Спробуйте видалити вміст директорії бази даних на хості (/opt/photoprism/data/database), щоб почати з чистою базою даних. При цьому всі існуючі дані PhotoPrism буде втрачено, і потрібно буде повторно проіндексувати фотографії. | sudo docker compose logs mariadb | 
| Фотографії не імпортуються або відображаються некоректно. | Неправильні права доступу до директорії originalsабо проблеми з форматом файлу. | Переконайтеся, що користувач Docker (зазвичай rootабо користувач, від імені якого запускаються контейнери) має права на читання/запис у/opt/photoprism/data/originals. Перевірте, що файли не пошкоджені та мають підтримуваний формат. | Перевірте права на директорії: ls -la /opt/photoprism/data/originals | 
Корисні посилання
Офіційна документація
- Офіційний сайт PhotoPrism: photoprism.app.
- GitHub-репозиторій PhotoPrism: github.com/photoprism/photoprism.
- Документація PhotoPrism: docs.photoprism.app.


