Как установить и использовать Piwigo на Raspberry Pi

Что такое Piwigo
Piwigo — это веб-приложение для управления фотографиями с открытым исходным кодом. Одной строкой: Piwigo хранит, индексирует и показывает фото через браузер и мобильные приложения.
Коротко: Piwigo родился как PhpWebGallery в 2001 году и получил текущее имя в 2009 году. Лицензия GNU GPL позволяет запускать, изучать, распространять и изменять программное обеспечение без ограничений.
Зачем запускать Piwigo на Raspberry Pi
Многие пользователи устали от зависимостей от облачных провайдеров и ограничения бесплатного хранилища. Самохостинг даёт контроль над фото, метаданными и доступом. Raspberry Pi подходит как недорогая платформа для домашнего сервера — особенно модели с 2–8 ГБ оперативной памяти.
Преимущества самохостинга Piwigo на Raspberry Pi:
- Полный контроль над данными и доступом.
- Низкие эксплуатационные затраты в домашних условиях.
- Простая интеграция с локальной сетью и внешним доступом через домен и HTTPS.
- Поддержка тем, плагинов и мобильных клиентов.
Ограничения:
- Для больших библиотек лучше выбирать более мощное железо или NAS.
- Требуется настройка безопасности и резервного копирования.
Требования и подготовка
Коротко: вам нужен Raspberry Pi с установленной OS (Raspberry Pi OS / Debian), интернет, домен (или динамический DNS), и доступ к маршрутизатору (для проброса портов). Рекомендуется минимум 8 ГБ свободного пространства для базы и превью, а для больших коллекций — внешний диск.
Подготовьте:
- Raspberry Pi с последней версией Raspberry Pi OS (64‑бит рекомендуется для новых моделей).
- Пользователь с sudo.
- Домен или DDNS для внешнего доступа.
- Резервный диск или USB/NAS для хранения фото (по желанию).
Примеры аппаратных рекомендаций:
- Raspberry Pi 4 / 400 с 4–8 ГБ ОЗУ для комфортной работы.
- Быстрая SD карта (A1/A2) или, лучше, SSD через USB 3.0.
Обновление системы
Обновите пакеты перед установкой:
sudo apt update
sudo apt upgrade -yImportant: обновления улучшают безопасность. Выполняйте их регулярно.
Установка и настройка базы данных
Piwigo требует реляционную базу данных (MariaDB/MySQL).
Установите MariaDB (если ещё не установлена):
sudo apt install mariadb-server -yЗапустите консоль MariaDB и создайте базу и пользователя:
sudo mariadbВ интерактивной консоли выполните (замените пароль на сложный):
CREATE DATABASE piwigo;
CREATE USER 'piwigo'@'localhost' IDENTIFIED BY 'supertopsecretpassword';
GRANT ALL PRIVILEGES ON piwigo.* TO 'piwigo'@'localhost';
FLUSH PRIVILEGES;
EXIT;Note: используйте безопасный пароль и храните его в менеджере паролей.
Настройка Apache и виртуального хоста
Установите Apache и PHP с необходимыми расширениями (рекомендуемая минимальная сборка):
sudo apt install apache2 php php-mysql php-gd php-xml php-mbstring php-json php-curl libapache2-mod-php -yСоздайте конфигурацию сайта:
cd /etc/apache2/sites-available/
sudo nano piwigo.confВ файле укажите примерно:
ServerName your-domain-name.tld
DocumentRoot /var/www/piwigo/
AllowOverride All
Require all granted
Сохраните и выйдите (Ctrl+O, Enter, Ctrl+X).
Активируйте сайт и перезапустите Apache:
sudo a2ensite piwigo.conf
sudo service apache2 restartЕсли сайт должен работать и по локальным запросам, добавьте ServerAlias или создайте отдельный DNS/hosts-запись.
Создайте директорию сайта и установите права:
sudo mkdir -p /var/www/piwigo/
cd /var/www/piwigo/
sudo chown -R www-data:www-data .Настройка DNS и проброс портов
На registrar’е добавьте A‑запись домена (или subdomain) — хост @ или subdomain укажите IP вашего маршрутизатора. На маршрутизаторе пробросьте порты 80 и 443 на Raspberry Pi.
Если у вас динамический IP, используйте службу DDNS и настройте клиент обновления IP на Raspberry Pi.
Загрузка инсталлятора Piwigo
Скачайте net‑installer в папку сайта:
sudo curl "https://piwigo.org/download/dlcounter.php?code=netinstall" -o install.phpПроверьте содержимое каталога:
ls -a /var/www/piwigo/Установка через браузер
Откройте в браузере: https://your-domain-name.tld/install.php (или http:// если HTTPS ещё не настроен). В установщике выберите язык и целевой путь. Если вы хотите, чтобы Piwigo открывался по корню домена, оставьте поле пути пустым.
Нажмите «Retrieve and unzip Piwigo». Инсталлятор загрузит и распакует архив.
На следующем шаге введите данные базы данных (host — localhost, имя базы — piwigo, пользователь — piwigo, пароль — тот, что вы задали), затем создайте администратора сайта.
После успешной установки вы получите сообщение об окончании. Войдите в панель администратора.
Настройка HTTPS
Установите Certbot и получите сертификаты от Let’s Encrypt:
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apacheСледуйте подсказкам: введите email, соглашайтесь с правилами, выберите домен. Certbot автоматически обновит конфигурацию Apache и добавит редирект на HTTPS.
Important: сертификаты Let’s Encrypt действуют 90 дней. Certbot добавляет автоматическое обновление, но проверьте cron/systemd timer.
Первые шаги в Piwigo — загрузка и альбомы
После входа нажмите «I want to add photos» и создайте новый альбом. Вы можете перетаскивать файлы в браузер или использовать кнопку «Add photos» и затем «Start upload».
Фото будут создавать превью и храниться в каталоге Piwigo. В зависимости от количества и скорости соединения загрузка может занять длительное время.
Альбомы пагинируются. Настройки глобальных параметров находятся в Admin > Configuration.
Мобильные приложения
Piwigo имеет официальные мобильные клиенты для iOS и Android. На Android клиент доступен в Google Play и в F‑Droid (открытый). Мобильное приложение упрощает загрузку прямо с телефона.
Резервное копирование и восстановление
Резервное копирование — ключ к защите фото. Делайте регулярные бэкапы двух типов:
- Бэкап базы данных (содержит информацию о фото, альбомах, пользователях):
mysqldump -u root -p piwigo > /path/to/backup/piwigo_db_$(date +%F).sql- Бэкап файлов (оригиналы, превью и конфиги):
sudo rsync -a /var/www/piwigo/ /path/to/backup/piwigo_files/Храните бэкапы на внешнем диске и/или в облаке. Тестируйте восстановление.
Безопасность и харднинг
Рекомендации по безопасности:
- Используйте HTTPS для внешнего доступа.
- Обновляйте систему и Piwigo (ядро и плагины) регулярно.
- Отключите или ограничьте доступ к панели администратора по IP, если возможно.
- Настройте firewall (ufw):
sudo apt install ufw -y
sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'
sudo ufw enable- Ограничьте права файлов: папки веб‑сервера принадлежат www-data, не давайте лишних прав.
- Используйте сложные пароли и двухфакторную аутентификацию для критичных учётных записей (если плагин поддерживает).
Оптимизация производительности
Несколько практических советов:
- Перенесите хранилище фотографий на SSD или сетевой NAS для больших коллекций.
- Увеличьте память PHP (php.ini) при большом количестве одновременных обработок:
memory_limit = 256M
upload_max_filesize = 100M
post_max_size = 110M- Настройте кэширование (APCu для PHP) и включите механизмы кэширования в Piwigo.
- Контролируйте фоновые задачи по созданию превью и крон‑задачи.
Плагины и темы
Piwigo имеет магазин расширений: плагины добавляют функциональность (вложенные альбомы, комментарии, водяные знаки и т. д.). Темы меняют оформление галереи.
Рекомендации:
- Watermark — для автоматической подписи изображений.
- Geolocation — для карт и метаданных GPS.
- Batch Manager — для массовых изменений метаданных.
Когда Piwigo может не подойти
Контрпримеры и ограничения:
- Если у вас десятки тысяч крупных RAW‑файлов и многопользовательская нагрузка, лучше выбирать более мощный сервер или коммерческие решения.
- Piwigo не заменит системы с полноценным AI‑поиском по содержимому (например, Google Photos с распознаванием лиц), если вам нужны автоматические метки объектов.
Альтернативы и сравнение
Короткая матрица сравнения:
- Nextcloud + Photos: сильная интеграция с облачным хранилищем, много функций, встроенная синхронизация.
- PhotoPrism: современный интерфейс, встроенное распознавание изображений, требователен к ресурсам.
- Lychee: лёгкий и простой, но с меньшей экосистемой плагинов.
Выбор зависит от приоритетов: удобство, приватность, функции AI, требования к ресурсам.
Практическая методология развертывания (мини‑SOP)
- Подготовьте Pi и диск.
- Обновите систему.
- Установите LAMP‑стек и MariaDB.
- Создайте базу и пользователя.
- Настройте виртуальный хост Apache.
- Скачайте и распакуйте Piwigo.
- Пройдите установку в браузере.
- Настройте HTTPS и firewall.
- Настройте регулярные бэкапы и мониторинг.
- Тестируйте восстановление из бэкапа.
Роли и чеклисты
Администратор:
- Обновить систему и приложение ежемесячно.
- Проверять логи Apache и MariaDB.
- Тестировать бэкапы раз в месяц.
- Управлять правами пользователей.
Пользователь (фотограф):
- Загружать фото через мобильное приложение или веб.
- Присваивать метаданные (даты, теги).
- Контролировать качество превью и размер загрузки.
Оператор сети:
- Настроить проброс портов и резервный DNS.
- Следить за использованием диска и I/O.
Критерии приёмки
- Сайт доступен по HTTPS и корректно обслуживает страницы галереи.
- Администратор может войти и управлять фотографиями.
- Загрузка фото создаёт превью и добавляет записи в базу.
- Резервное копирование базы и файлов выполняется и тестово восстанавливается.
Инцидентный план восстановления (runbook)
Симптом: сайт недоступен (500 или пустая страница).
- Проверить логи Apache: sudo journalctl -u apache2 -e или /var/log/apache2/error.log.
- Проверить свободное место на диске: df -h.
- Проверить статус MariaDB: sudo systemctl status mariadb.
- Восстановить базу из последнего дампа, если коррумпирована.
- Откатить последние изменения конфигурации (git или резервная копия).
- При проблемах с HTTPS проверить certbot: sudo certbot renew –dry-run.
Тесты и критерии приёмки
- Функциональность: логин, загрузка, просмотр, создание альбома.
- Нагрузочный тест: одновременная загрузка 5–10 файлов — сервер не должен падать.
- Восстановление: восстановление последней резервной копии должно занимать предсказуемое время и возвращать рабочую галерею.
Decision tree: стоит ли вам самохостить Piwigo
flowchart TD
A[Нужен контроль над фото?] -->|Да| B[Имеется Raspberry Pi или сервер?]
A -->|Нет| Z[Оставайтесь в облаке]
B -->|Да| C[Большая коллекция '>50k'?]
B -->|Нет| D[Рассмотрите облако или малую установку]
C -->|Да| E[Используйте NAS/сервер с большим диском]
C -->|Нет| F[Raspberry Pi подходит — продолжить установку]
E --> G[PhotoPrism или Nextcloud]
F --> H[Установить Piwigo]Локальные советы и подводные камни
- На Raspberry Pi старых версий генерация превью может быть медленной. Используйте фоновые задачи и отложенную обработку.
- Следите за правами на каталоги: неправильные права приведут к ошибкам загрузки.
- Если вы используете внешнюю папку для хранения фото, настройте символические ссылки и корректные права для www-data.
Короткое объявление для друзей и семьи (100–200 слов)
Я развернул домашнюю фото‑галерею на Raspberry Pi с помощью Piwigo. Теперь все семейные снимки хранятся в нашем доме, доступны по защищённому адресу и синхронизируются с телефона. Это даёт полный контроль над приватностью и удобный доступ для просмотра и скачивания. Если хотите, могу настроить доступ и показать, как загружать фото с телефона.
Краткое резюме
Piwigo — отличное решение для домашнего хранилища фотографий. На Raspberry Pi оно работает стабильно для персональных и небольших коллекций. Сосредоточьтесь на безопасности (HTTPS, firewall), резервном копировании и периодическом обслуживании. Для больших коллекций рассмотрите более мощный сервер или NAS.
Notes: если вы планируете публичный показ портфолио, уделите внимание теме и оптимизации изображений для быстрой загрузки.
Полезные ссылки и следующий шаг
- Официальный сайт Piwigo: piwigo.org
- Документация по Certbot и Let’s Encrypt
- Руководство по резервному копированию MySQL/MariaDB
Вывод: если вам важен контроль и приватность фотографий, Piwigo на Raspberry Pi — практичное и экономичное решение. Следуйте шагам установки, настройте безопасность и бэкапы, и вы получите стабильную домашнюю фотогалерею.
Похожие материалы
Как закрепить папку или файл в Dock на Mac
Как найти локальные вакансии в вашем городе через Twitter
Включить «Привет, Siri» на iPhone и iPad
Как поделиться библиотекой Plex с друзьями
Ошибка 264 в Roblox — как устранить на Windows и Mac