Photoview: галерея на своём сервере, альбомы по клиентам и объектам
Photoview сканирует папку на сервере и показывает её как альбомы, а альбом можно отдать клиенту ссылкой с паролем. Разобрал по репозиторию: лицензия AGPL-3.0, живой master при релизе двухлетней давности, лица, ПДн и то, чего в проекте нет.
Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в Telegram одной фразой.
Развернуть Photoview и закрыть доступ под ключ (DevOps)Фото по объектам лежат в трёх местах
Прораб сбрасывает фотоотчёт в рабочий чат. Мастер салона присылает «до и после» в личные сообщения. Менеджер магазина держит снимки товаров на ноутбуке. Через месяц клиент просит фото скрытых работ, а они в чате на четыреста сообщений выше и без даты в названии.
Photoview решает это просто. Вы указываете папку на сервере, сканер находит фото и видео, строит превью и показывает всё в той же структуре папок. Папка клиента становится альбомом. Проект лежит в репозитории photoview/photoview. Поводом стал пост GitHub Radar от 14 октября, сам пост я не открывал, всё сверено с репозиторием и сайтом проекта. Сам я Photoview не разворачивал.
Что я проверил по репозиторию
Лицензия по файлу LICENSE.txt: GNU AGPL v3. Если вы измените код и дадите людям доступ к изменённой версии по сети, AGPL требует открыть изменения. Для установки без правок это не мешает.
Репозиторий не архивирован, около 6,5 тысячи звёзд. Бэкенд на Go, интерфейс на React 18 по package.json. Последний коммит от 8 октября 2026 года, в основном автоматические обновления зависимостей. Люди тоже правят: в сентябре поправили токены общих ссылок, 31 июля закрыли SQL-инъекцию в маршруте скачивания альбома.
Теперь неудобная часть. Последний релиз v2.4.0 датирован 23 июня 2024 года, это больше двух лет назад. Исправления 2026 года находятся в ветке master и в образе с тегом master. Тег 2.4.0 на Docker Hub пересобирали 8 октября, но что в нём изменилось, я не проверял. Решите заранее, что ставите: образ с релизной меткой без свежих правок или master без метки, где README предупреждает о переходе на PostgreSQL 18. Закладывайте время на обновления.
База данных: MariaDB по умолчанию, SQLite и PostgreSQL 17 или 18. Про SQLite авторы пишут, что у неё самая низкая производительность. Требований к процессору и памяти README не называет, цифр у меня нет. RAW конвертируется через Darktable, видео через ffmpeg.
Папки, пользователи и ссылки для клиента
Структуру папок я бы держал такой: клиент или объект, дата, файлы. Например, Ремонт-Ленина-12 и внутри 2026-10-14. Сканер превращает каждую папку в альбом. В примере compose папка с фото подключена только на чтение (метка ro), поэтому галерея оригиналы не меняет. Загружать фото можно привычным способом, например по SFTP.
Пользователи создаются вместе с путём на диске, фото из этого пути ему доступны. Прорабам и мастерам можно завести своих пользователей с их папками, руководителю дать корневую. Клиенту аккаунт не нужен: по README альбом или снимок отдаётся публичной ссылкой, при желании с паролем. В схеме API у ссылки есть пароль, подпись и срок действия. Есть ли поле срока в интерфейсе, проверьте на установке, я это не открывал.
Условный пример объёма. Допущения мои: 20 объектов в месяц, по 150 фото, по 4 МБ. Выходит 12 ГБ в месяц и около 144 ГБ оригиналов в год. Кэш превью и видео займут сверху.
Фото людей и распознавание лиц
Снимок стены без людей почти не создаёт вопросов. Клиент салона в кадре «до и после» уже персональные данные, если человека можно узнать. Основание для публикации узнаваемого человека лежит в статье 152.1 Гражданского кодекса, я разбирал это в материале про согласие на публикацию фото. Ссылка на альбом показывает фото каждому, у кого она есть. Поэтому пароль и срок действия на каждую ссылку.
Единого срока хранения в 152-ФЗ нет, он вытекает из цели обработки. Подробности в статье про сроки хранения данных клиентов. Сколько держать фото объекта после акта, решает договор и ваша цель. Цифр не придумываю.
Теперь лица. Photoview сам находит лица и группирует снимки одного человека. Для бизнеса с клиентскими фото это обработка изображений людей по признакам лица. Относится ли она к биометрическим данным, зависит от целей, это вопрос к юристу. В коде есть переменная PHOTOVIEW_DISABLE_FACE_RECOGNITION, она выключает функцию. Я бы отключил его сразу.
Чего нет и как закрыть доступ
- Прав по ролям внутри альбома не нашёл. Доступ определяется путём пользователя и ссылкой.
- Загрузки клиентом нет: галерея читает папку, залить туда может только тот, у кого есть доступ к ней.
- Водяных знаков в README и на сайте не нашёл.
- HEIC в README не назван. В тестовых файлах репозитория есть .heif и .heic, свои снимки проверьте до запуска.
Про доступ README говорит прямо: встроенной авторизации мало, чтобы выставлять сервис в интернет. Авторы советуют VPN, обратный прокси с HTTPS, внешнюю двухфакторную проверку. Встроенной двухфакторной проверки в README нет. Практичная схема: клиентские ссылки идут через прокси с HTTPS, вход для сотрудников остаётся за VPN.
Nextcloud это файловое облако с загрузкой клиентом и правами, галерея там вторична, я писал о нём в статье про свой облачный диск. Immich построен вокруг загрузки с телефонов и поиска, он разобран в материале про фотоархив Immich. Photoview берёт папки, которые у вас уже есть. Облако и мессенджер не требуют сервера, но привязывают архив к чужим условиям. Копируйте папку с оригиналами и базу, где лежат пользователи и ссылки, как в статье про резервные копии.
Что можно сделать уже сейчас
Пилот на одном объекте. Разложите фото одного объекта по папкам и поднимите Photoview на тестовом сервере с SQLite.
Правило папок. Договоритесь, как называются клиент, объект и дата, и кто кладёт файлы.
Три настройки до первой ссылки. Отключить лица, поставить сервис за HTTPS, выдавать ссылки только с паролем и записывать, кому какая ушла.
Согласие и срок хранения. Для съёмки людей подготовьте текст согласия и впишите срок во внутренний документ.
Развернуть всё под ключ с прокси, VPN, копиями и обновлениями я могу в рамках услуги DevOps.
Частые вопросы
Может ли клиент сам загрузить фото?
В README такой функции нет. Photoview показывает файлы из папки на сервере. Для загрузки нужен другой канал, например файловое облако.
Photoview заменит Immich или Nextcloud?
Если фото уже лежат по папкам и их нужно показать клиенту ссылкой, хватит Photoview. Для загрузки с телефонов, поиска или совместной работы с файлами нужны другие инструменты.
Безопасно ли открыть его в интернет?
Авторы сами говорят, что встроенной защиты мало. Нужны HTTPS, прокси, VPN для сотрудников и обновления.
Коротко о главном
Photoview даёт малому бизнесу галерею на своём сервере: папки клиентов и объектов становятся альбомами, ссылка с паролем открывает альбом заказчику. Проект живой, но релиз двухлетней давности. Ролей внутри альбома, загрузки клиентом и водяных знаков нет.
Хотите разобрать, подойдёт ли это вашему бизнесу и как настроить доступ, копии и обновления, напишите мне в Telegram кодовое слово «ФОТООТЧЁТ».
Ещё open-source для бизнеса
Эта статья — часть каталога бесплатных решений, которые я разворачиваю на вашем сервере под ключ: CRM, аналитика, документы, почта, безопасность, магазины, AI.
Что я делаю для бизнеса
Напишите одной фразой, что нужно. Отвечу, что подойдёт, сколько займёт и сколько стоит. Сообщение уже подготовлено.
- Боты в Telegram, MAX, VK
- Автоматизация процессов и CRM
- Аналитика и дашборды
- Сайты и лендинги под ключ
Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.


