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.