Open-source и свой сервер 4 мин чтения

Photoview: галерея на своём сервере, альбомы по клиентам и объектам

Photoview сканирует папку на сервере и показывает её как альбомы, а альбом можно отдать клиенту ссылкой с паролем. Разобрал по репозиторию: лицензия AGPL-3.0, живой master при релизе двухлетней давности, лица, ПДн и то, чего в проекте нет.

Photoviewфотогалереяself-hostedфотоотчёты
Коротко. Photoview это галерея на своём сервере на Go и React, лицензия AGPL-3.0. Она сканирует папку, делает превью и показывает те же папки как альбомы, а альбом можно отдать клиенту ссылкой с паролем. Проект не заброшен: последний коммит 8 октября 2026 года. Но последний релиз v2.4.0 вышел 23 июня 2024 года, свежие исправления лежат в ветке master. Загрузки фото клиентом, ролей внутри альбома и водяных знаков в README нет. Лица распознаются автоматически, функцию можно отключить. Это не юридическая консультация.
Хотите внедрить это у себя?

Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в 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 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх