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/tcp iptables: 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.