Установка и настройка PhotoPrism на Raspberry Pi
Что такое PhotoPrism (одно предложение)
PhotoPrism — это локальный сервис для хранения, индексирования и поиска фотографий с распознаванием лиц и объектов, картой съёмок и возможностью синхронизации с мобильными устройствами.
Быстрая памятка по намерениям статьи
- Основной сценарий: установка PhotoPrism на Raspberry Pi с помощью docker-compose.
- Дополнительные сценарии: доступ из внешней сети через Apache + Let’s Encrypt, способы загрузки и синхронизации фотографий, советы по производительности и безопасности.
Требования и подготовка
- Raspberry Pi (рекомендуется модель с 4 ГБ ОЗУ и выше).
- Операционная система: Raspberry Pi OS или совместимая Debian-подобная сборка.
- Подключение к сети и доступ по SSH.
Важно: PhotoPrism стабилен только при наличии минимум 4 ГБ ОЗУ. Если у вас меньше, можно увеличить файл подкачки (swap), но запись в microSD-карту при частых операциях может быстро её износить. Рекомендуется загрузка с SSD для более долгого срока службы и стабильности.
Подготовка Raspberry Pi и обновление пакетов
Подключитесь по SSH, затем обновите систему:
ssh pi@your.pi.local.ip
sudo apt update
sudo apt upgradeЕсли на устройстве нет docker и docker-compose, установите их (пример для Debian-подобных систем):
sudo apt install -y docker.io docker-compose
sudo systemctl enable --now docker
sudo usermod -aG docker $USER(Перезапустите сессию SSH или выйдите и войдите снова, чтобы изменения группы вступили в силу.)
Настройка памяти (если ОЗУ < 4 ГБ)
Если у вас меньше 4 ГБ ОЗУ и вы хотите попробовать PhotoPrism, можно временно увеличить swap:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfileПримечание: это ускорит деградацию microSD-карты при интенсивной записи; используйте SSD по возможности.
Загрузка и правка docker-compose файла
PhotoPrism предназначен для запуска в контейнерах. Скачайте официальный docker-compose.yml:
wget https://dl.photoprism.app/docker/docker-compose.ymlОткройте файл в текстовом редакторе (например, nano):
nano docker-compose.ymlВ файле замените значения паролей по умолчанию (по умолчанию «insecure») на надёжные строки. Также проверьте путь к фотографиям — по умолчанию /home/pi/Pictures; при необходимости скорректируйте раздел Volumes.

ALT изображения: Внешний вид файла docker-compose для PhotoPrism, открытого в nano на терминале.
Сохраните и закройте файл: Ctrl + O, Enter, Ctrl + X.
Развёртывание контейнеров
Скачайте образы и поднимите контейнеры:
docker-compose pull
docker-compose up -dПроверьте статус:
docker-compose ps
ALT изображения: Вывод команд docker-compose в терминале, показывающий состояние контейнеров.
По умолчанию PhotoPrism будет доступен по адресу: your.local.pi.ip:2342. Логин: admin, пароль — тот, что вы указали в docker-compose.yml.
Доступ к PhotoPrism из внешней сети (опционально)
Чтобы попасть на PhotoPrism вне вашей домашней сети, потребуется доменное имя и обратный прокси (в примере — Apache).
В панели управления вашего регистратора создайте DNS A-запись: тип A, хост @, значение — ваш публичный IP.
На Raspberry Pi создайте конфигурацию Apache:
cd /etc/apache2/sites-available/
sudo nano photos.confВставьте:
ServerName your-domain-name.tld
ProxyPass /api/v1/ws ws://your.pi.local.ip:2342/api/v1/ws
ProxyPassReverse /api/v1/ws ws://your.pi.local.ip:2342/api/v1/ws
ProxyPass / http://your.pi.local.ip:2342/
ProxyPassReverse / http://your.pi.local.ip:2342/
ProxyRequests off
Сохраните и выйдите. Затем включите сайт и перезапустите Apache:
sudo a2ensite photos.conf
sudo service apache2 restart- Выпустите TLS-сертификат через Certbot (Let’s Encrypt):
sudo certbotСледуйте подсказкам: укажите email, выберите домен для защиты. После успешного получения сертификатов Apache будет обслуживать PhotoPrism по HTTPS на https://your-domain-name.tld.
Важно: при пробросе портов на маршрутизаторе убедитесь, что проброс порта 80/443 направлен на Raspberry Pi, если вы не используете внешний прокси.
Загрузка фотографий на сервер
По умолчанию PhotoPrism сканирует /home/pi/Pictures. Для передачи фотографий с локальной машины используйте scp:
scp -r /path/to/your/images/* pi@your.pi.local.ip:/home/pi/Pictures/Альтернативы для автоматизации: PhotoSync (мобильный клиент), SyncThing, Nextcloud (PhotoPrism может читать WebDAV Nextcloud).
Запуск ресканирования и индексации
В веб-интерфейсе нажмите значок плёнки слева, отметьте “Complete rescan” и нажмите Start. Индексация создаёт миниатюры, теги по объектам/лицам и карту по геоданным.
Предупреждение: процесс индексации может потребовать много памяти и времени — для больших коллекций он может занять часы или дни. При недостатке ОЗУ сервис может аварийно завершиться.

ALT изображения: Интерфейс PhotoPrism с полем поиска, примерами изображений домашних животных и вариантами фильтрации.
Как PhotoPrism распознаёт объекты и где он ошибается
PhotoPrism использует TensorFlow и модели машинного обучения для генерации тегов — чаще всего метки корректны, но иногда случаются ошибки (например, кошка помечена как обезьяна). Это нормальное поведение компьютерного зрения: точность зависит от модели, качества изображений и контекста.

ALT изображения: Примеры тегов PhotoPrism, группирующих изображения по распознанным объектам.
Карта съёмок и геоданные
Если камера или смартфон сохраняют GPS в EXIF, PhotoPrism отобразит местоположения на карте и позволит искать фотографии по локациям.

ALT изображения: Карта PhotoPrism с пометками мест съёмки по Великобритании, Европе и Турции.
Совет: если вы хотите более точного результата на карте, убедитесь, что в настройках камеры включено сохранение координат и что при импорте EXIF не удаляется.
Добавление синхронизации с мобильными устройствами
- PhotoSync (рекомендуемый мобильный клиент) для прямой загрузки на сервер.
- SyncThing для синхронного копирования папок между устройствами.
- Nextcloud + WebDAV: PhotoPrism может подкачивать новые фотографии из Nextcloud по расписанию (настройки → Sync → Add server → WebDAV).
Производительность и оптимизация
- Желательно 4 ГБ ОЗУ или больше.
- Используйте SSD вместо microSD для главного хранилища и базы данных.
- Ограничьте одновременно работающие потоки и задачи индексирования в конфигурации PhotoPrism при низкой памяти.
- Периодически чистите ненужные миниатюры и бэкапы.
Резервное копирование и восстановление
- Резервируйте каталог с библиотекой фото и базу данных (MariaDB): создайте регулярные бэкапы volume-ов или копии папок с фотографиями.
- Простой способ: rsync на внешний диск или сетевой NAS.
Пример бэкапа каталога с фотографиями:
rsync -av --delete /home/pi/Pictures/ /media/backup/photoprism-pictures/Безопасность и конфиденциальность
- Всегда используйте HTTPS для внешнего доступа.
- Сильные уникальные пароли для админа и базы данных.
- Ограничьте доступ фаерволом (ufw) к портам, которые не должны быть публичными.
- Если не нужен внешний доступ — избегайте проброса портов и держите сервис в локальной сети.
Пример базовых правил ufw:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enableGDPR и приватность (коротко)
- PhotoPrism хранит и индексирует метаданные EXIF, включая геолокацию.
- Для соответствия требованиям конфиденциальности: отключите сохранение GPS в камере/смартфоне, удаляйте чувствительные EXIF-поля при экспорте, документируйте политику хранения данных, если у вас есть доступы других пользователей.
Важно: локальный сервер под вашим контролем меньше подвержен внешним утечкам, но вы всё равно ответственны за обработку персональных данных, если ими пользуются другие люди.
Когда PhotoPrism может не подойти (краткие контрпримеры)
- Очень большие корпоративные коллекции (миллионы изображений) — потребуется кластерная и более ресурсоёмкая инфраструктура.
- Жёсткие требования к точности распознавания для критичных задач (медицина, правоохранительные системы).
- Если вам нужен нативный мобильный клиент с полными возможностями — PhotoPrism полагается на сторонние приложения для синхронизации.
Альтернативные подходы
- Nextcloud Photos — лучше интегрирован в Nextcloud-экосистему.
- Lychee / PhotoStructure / Piwigo — лёгкие решения для простых галерей.
- Коммерческие облачные сервисы (Google Photos, iCloud) — удобнее, но менее приватно.
Чек-лист по ролям
- Для администратора:
- Проверить наличие Docker и docker-compose.
- Настроить резервные копии и мониторинг.
- Настроить HTTPS и правила брандмауэра.
- Для домашнего пользователя:
- Скопировать фото в /home/pi/Pictures.
- Запустить полное сканирование и проверить результаты.
- Настроить мобильную синхронизацию.
Критерии приёмки
- Сервис доступен локально по http://your.local.pi.ip:2342 или по HTTPS через ваш домен.
- База данных MariaDB работает и не выдаёт ошибок при старте контейнеров.
- Индексация завершена без критических ошибок, миниатюры созданы.
- Как минимум одна фотография правильно отображается в галерее и по результатам поиска.
Тесты и сценарии проверки
- Тест 1: загрузить папку с 10 изображениями, запустить Complete rescan, убедиться, что все 10 отображаются.
- Тест 2: проверить поиск по дате и по камере (если EXIF содержит данные).
- Тест 3: убедиться, что карта отображает фото с GPS.
- Тест 4: доступ по HTTPS для внешнего домена работает и сертификат валиден.
Краткая методология миграции с другого сервиса
- Экспортируйте фотографии и метаданные (если возможно).
- Поместите файлы в целевой каталог /home/pi/Pictures.
- Запустите Complete rescan.
- Сверьте контрольные выборки (по датам, по именам файлов).
Глоссарий (1 строка)
- EXIF — метаданные в файле изображения, включающие дату, модель камеры и координаты GPS.
Итог и рекомендации
PhotoPrism — отличный выбор для личного архива фотографий на Raspberry Pi: удобный поиск, распознавание лиц и объектов, карта съёмок и гибкая синхронизация. Для стабильной работы используйте минимум 4 ГБ ОЗУ или SSD, настраивайте резервное копирование и HTTPS для внешнего доступа. Если вам нужны дополнительные возможности или корпоративный масштаб, рассмотрите альтернативы.
Важно: тестируйте процесс индексации на небольшой выборке перед импортом всей коллекции.
Резюме
- PhotoPrism легко запускать через docker-compose на Raspberry Pi.
- Рекомендуется 4 ГБ ОЗУ, SSD и регулярные бэкапы.
- Для внешнего доступа используйте обратный прокси + Let’s Encrypt.
- Учитывайте приватность EXIF-геоданных при совместном использовании сервера.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone