Новые релизы
Сравнение версии рецепта с последним известным релизом upstream. Это номер версии, а не разбор изменений.
PhotoPrism индексирует фотографии и видео на вашем сервере, группирует их по датам, местам и людям, читает метаданные и предоставляет поиск через браузер. Рецепт использует MariaDB, хранит оригиналы локально и публикует web-интерфейс только через localhost.
PhotoPrism превращает каталог с фотографиями и видео в личную web-фототеку. Он индексирует существующую структуру папок, читает EXIF и XMP, создаёт превью, показывает календарь и карту, находит лица и позволяет искать снимки по фильтрам. Это вариант для личного или семейного архива вместо Google Photos, iCloud Photos и облачного просмотра файлов; автоматической загрузки через собственные нативные мобильные приложения у Community Edition нет.
Рецепт запускает официальный образ PhotoPrism 260728, соответствующий релизу
260728-bbde8f452, и MariaDB 12.3.2. Оригиналы и изменяемое хранилище вынесены в
каталоги хоста, база находится в отдельном Docker volume. Опциональные Ollama,
PhotoPrism Vision, Watchtower и аппаратное ускорение намеренно не включены.
Полный HTTP smoke-тест прошёл на amd64 и arm64; backup, restore и обработка
реальных медиа ещё не проверялись. Порт привязан к localhost, MariaDB наружу не публикуется, а
режим аутентификации требует пароль. Файлы, превью, база и .env не шифруются
рецептом. Индексатор обрабатывает недоверенные форматы внешними библиотеками и на пике
требует много памяти. Поэтому ограничение памяти намеренно не задано: жёсткий
лимит убьёт индексацию на середине — рассчитывайте объём хоста на пик.
Community Edition открыта по AGPL-3.0, но дополнительные условия upstream защищают товарный знак и брендовые материалы. Часть возможностей платных редакций не входит в Community Edition; актуальное сравнение приведено на сайте upstream.
Это сохранённые результаты отдельных проверок, а не данные в реальном времени. Неизвестный статус означает, что проверка ещё не выполнялась.
Сравнение версии рецепта с последним известным релизом upstream. Это номер версии, а не разбор изменений.
Результат отдельного сканирования Docker-образов, а не проверки Compose.
Новый major находится сравнением номеров версий. Вердикт о совместимости заносится вручную после чтения release notes и порядка миграции.
Изменения upstream Compose относительно проверенного рецепта.
Проверка закреплённых тегов образов на наличие новых версий.
От наблюдения к действию
Рецепт уже закрепляет последний известный релиз. Ниже показаны сохранённые основания для этой версии.
260728260728Для источника с ручным отслеживанием нет точной ссылки на release notes. Начните с источников проекта ниже.
Номера версий не пересекают major-границу совместимости. Вердикт о совместимости не записан.
Смена тегов образов сейчас не планируется.
Ручные шаги после обновления. Шаги конкретного релиза всё равно берутся из release notes и инструкции по установке.
Смена версии сейчас не планируется. Рецепт содержит процедуру backup. Restore не проверен.
Точная проверка уровня «Проверен полностью» для этой версии записана 2026-09-03.
Статус показывает, насколько опубликованный рецепт покрывает требования каждого уровня.
Минимальная конфигурация для локальной сети или доступа через VPN.
Нужно добавить вручную: один сервер, локальный доступ, минимум компонентов.
Публичная установка с защищённым доступом и резервными копиями.
Нужно добавить вручную: домен, https через reverse proxy, backup вне сервера.
Конфигурация для предсказуемой эксплуатации и наблюдаемости.
Нужно добавить вручную: внешний мониторинг, лимиты cpu и памяти.
Собрать под свой сервер
Ответьте на пять вопросов и скачайте готовый комплект PhotoPrism.
Скриншоты ещё не добавлены.
Сначала прочитайте полную инструкцию: в ней описаны доступ извне, backup и расположение данных.
cp .env.example .envdocker compose up -ddocker compose psИспользуйте Ubuntu 22.04+ или Debian 12+ с Docker Engine и Compose v2.24+. Выделите минимум 2 CPU, 4 ГБ RAM и 4 ГБ swap; 8 ГБ RAM рекомендуется для больших файлов и индексации. Диск должен вмещать оригиналы, превью, sidecar и backup.
docker --version
docker compose version
free -h && df -h /srv
mkdir -p ~/services/photoprism
sudo mkdir -p /srv/photoprism/{originals,storage,backups}
sudo chown -R "$(id -u):$(id -g)" /srv/photoprism
cd ~/services/photoprism
cp .env.example .env
chmod 600 .env
sed -i "s|^PHOTOPRISM_ADMIN_PASSWORD=.*|PHOTOPRISM_ADMIN_PASSWORD=$(openssl rand -base64 36 | tr -d '/+=')|" .env
sed -i "0,/^PHOTOPRISM_DATABASE_PASSWORD=.*/s||PHOTOPRISM_DATABASE_PASSWORD=$(openssl rand -hex 32)|" .env
sed -i "s|^PHOTOPRISM_DATABASE_ROOT_PASSWORD=.*|PHOTOPRISM_DATABASE_ROOT_PASSWORD=$(openssl rand -hex 32)|" .env
sed -i 's|^PHOTOPRISM_ORIGINALS_PATH=.*|PHOTOPRISM_ORIGINALS_PATH=/srv/photoprism/originals|' .env
sed -i 's|^PHOTOPRISM_STORAGE_PATH=.*|PHOTOPRISM_STORAGE_PATH=/srv/photoprism/storage|' .env
sed -i 's|^PHOTOPRISM_BACKUP_DIR=.*|PHOTOPRISM_BACKUP_DIR=/srv/photoprism/backups|' .env
sed -i "s|^PHOTOPRISM_UID=.*|PHOTOPRISM_UID=$(id -u)|" .env
sed -i "s|^PHOTOPRISM_GID=.*|PHOTOPRISM_GID=$(id -g)|" .env
Все переменные .env:
PHOTOPRISM_VERSION — точный тег официального образа;PHOTOPRISM_PORT — локальный web-порт;PHOTOPRISM_SITE_URL — внешний URL с завершающим /;PHOTOPRISM_ADMIN_USER и PHOTOPRISM_ADMIN_PASSWORD — начальная учётная запись администратора;PHOTOPRISM_DEFAULT_LOCALE — язык нового интерфейса;PHOTOPRISM_ORIGINALS_PATH — оригинальные фото и видео;PHOTOPRISM_STORAGE_PATH — превью, кэш, sidecar, конфигурация и dumps;PHOTOPRISM_BACKUP_DIR — каталог локальных копий для backup.sh;PHOTOPRISM_UID и PHOTOPRISM_GID — пользователь, под которым образ запускает сервер; должен совпадать с владельцем каталогов выше;PHOTOPRISM_INIT — пусто по умолчанию; значение tensorflow качает CPU-оптимизированный TensorFlow (~500 МБ) при каждом пересоздании контейнера и до конца загрузки не поднимает web-сервер;PHOTOPRISM_DATABASE_NAME, PHOTOPRISM_DATABASE_USER и PHOTOPRISM_DATABASE_PASSWORD — база и учётная запись приложения;PHOTOPRISM_DATABASE_ROOT_PASSWORD — root MariaDB только для администрирования и restore;PHOTOPRISM_DATABASE_VOLUME — имя volume с MariaDB;TZ — часовой пояс IANA.docker compose config
docker compose pull
docker compose up -d --wait
docker compose ps
curl --fail http://127.0.0.1:2342/api/v1/status
Откройте http://localhost:2342 через SSH-туннель и войдите с данными из .env:
ssh -L 2342:127.0.0.1:2342 user@server.example
Оставьте bind 127.0.0.1, не публикуйте MariaDB и откройте firewall только для
SSH, HTTP и HTTPS. Задайте PHOTOPRISM_SITE_URL=https://photos.example.com/,
пересоздайте контейнер и публикуйте его только через HTTPS reverse proxy.
Без TLS используйте SSH-туннель или VPN. Для постоянного LAN-доступа замените
127.0.0.1 в compose.yaml на конкретный приватный адрес, установите такой же
origin в PHOTOPRISM_SITE_URL и ограничьте порт firewall. Не используйте
0.0.0.0 без сетевых ограничений.
Замените photos.example.com в одном файле из proxy/. Caddy получает сертификат
автоматически, Nginx ожидает файлы Certbot, Traefik использует resolver
letsencrypt. Для proxy в контейнере localhost означает сам proxy: укажите
доступный host gateway. После изменения URL выполните:
docker compose up -d --force-recreate photoprism
curl --fail https://photos.example.com/api/v1/status
chmod +x backup.sh restore.sh
./backup.sh
Скрипт останавливает PhotoPrism, выгружает MariaDB и архивирует оригиналы и
storage в один .tar в PHOTOPRISM_BACKUP_DIR. Остановка обязательна:
индексация во время копирования оставит в базе записи о файлах, которых нет в
архиве оригиналов. Пароль root уходит в контейнер через MYSQL_PWD, а не через
argv, поэтому не попадает в список процессов. Архив содержит фото и пароли:
зашифруйте его, храните копию вне сервера и проверяйте restore. Встроенные
dumps БД в storage не заменяют копию оригиналов.
Восстановление необратимо заменяет оригиналы, storage и базу. Перед заменой
скрипт сам делает аварийную копию текущего состояния. Используйте ту же версию
образов, проверьте .env, затем:
./restore.sh ./backups/photoprism-YYYYMMDDTHHMMSSZ.tar
docker compose ps
curl --fail http://127.0.0.1:2342/api/v1/status
Процедура ещё не проверена практическим restore-тестом; сначала испытайте её на отдельном сервере.
Создайте backup, прочитайте release notes и замените PHOTOPRISM_VERSION только
на проверенный точный тег, не latest. MariaDB обновляйте отдельно.
docker compose pull photoprism
docker compose up -d --wait photoprism
docker compose logs --tail=200 photoprism
Не запускайте старый PhotoPrism поверх базы после миграций. Верните прежний тег и восстановите весь pre-update архив, включая dump и storage. Новые снимки после backup в откат не попадут; скопируйте их отдельно до замены данных.
docker compose down сохраняет данные. После проверки внешнего backup удалить
всё безвозвратно можно так:
docker compose down
docker volume rm photoprism-database
sudo rm -rf /srv/photoprism
rm -rf ~/services/photoprism
Источники: Docker Compose, параметры, backup, updates и release 260728.
docker compose ps
docker compose logs --tail=200 photoprism mariadb
docker inspect --format '{{json .State.Health}}' "$(docker compose ps -q photoprism)"
Первый запуск и установка TensorFlow занимают время. Проверьте свободные RAM, swap и диск, права на каталоги originals/storage и замену всех трёх паролей.
docker compose exec mariadb healthcheck.sh --connect --innodb_initialized
docker compose exec photoprism photoprism show config | grep -i database
Пароль из .env применяется при создании volume. Его изменение не меняет уже
созданного пользователя MariaDB: верните прежнее значение или явно смените
пароль в БД. Не удаляйте volume без проверенного dump.
Upstream предупреждает, что менее 4 ГБ swap и жёсткие memory limits могут вызвать
рестарты при обработке больших файлов. Проверьте free -h, docker stats, логи
и место в storage. Не запускайте повторную полную индексацию до backup.
Убедитесь, что PHOTOPRISM_ORIGINALS_PATH указывает на каталог с файлами и
контейнер может их читать:
docker compose exec photoprism find /photoprism/originals -maxdepth 2 -type f | head
docker compose exec photoprism photoprism index
С хоста проверьте curl http://127.0.0.1:2342/api/v1/status. Значение
PHOTOPRISM_SITE_URL должно точно совпадать с внешним https URL и заканчиваться
слешем. Proxy в контейнере не достигает host localhost без host gateway.
Не откатывайте только тег поверх мигрированной базы. Посмотрите логи миграций,
верните прежний Compose и .env, затем восстановите согласованный pre-update
архив с MariaDB dump, storage и originals.
Fossary — независимый информационный каталог, не связанный с разработчиками представленных приложений. Мы собираем сведения из открытых источников и проверяем опубликованные рецепты, но не разрабатываем, не распространяем и не контролируем эти приложения.
Публикация карточки или статус проверки не являются требованием, навязыванием либо персональной рекомендацией использовать приложение. Вы самостоятельно решаете, подходит ли оно вам, и используете его на свой риск. Мы не гарантируем безопасность, доступность или пригодность приложения и, в пределах, допускаемых законом, не отвечаем за вызванные им потери или ущерб. До установки проверьте лицензию, настройки безопасности, обработку данных и резервное копирование.