Установка и настройка Jirafeau на Debian 10 с Nginx и PHP-FPM

Краткое содержание
Jirafeau — лёгкий файловый хостинг без базы данных. Эта инструкция пошагово объясняет установку на Debian 10, настройку Nginx и PHP-FPM, получение SSL и рекомендации по безопасности. Включены чек-листы, сценарии тестирования и варианты на случай проблем.
Коротко о Jirafeau
Jirafeau — простое веб-приложение на PHP для обмена файлами. Работает без СУБД. Поддерживает пароли, срок жизни ссылок, одноразовые загрузки и превью внутри браузера.
Требования
- Сервер с Debian 10 и root-доступом.
- Доменное имя, указывающее на сервер.
- Переменная окружения $EDITOR должна быть установлена.
Если вы вошли как обычный пользователь с sudo, откройте привилегированную оболочку:
sudo -sВажно
- Убедитесь, что DNS для домена уже указывает на ваш сервер перед получением сертификата.
- Рекомендуется тестировать на выделенной машине или виртуальной среде перед продакшеном.
Установка Jirafeau
Обновление системы и установка зависимостей
Обновите систему и перезагрузите её:
apt update
apt upgrade -y
rebootПосле перезагрузки установите необходимые пакеты:
apt install -y nginx php php-fpm certbot gitУбедитесь, что Nginx и PHP-FPM включены и запущены:
systemctl enable --now nginx.service php7.3-fpm.serviceПолучение SSL сертификата
Получите сертификат через certbot, используя webroot метод. Замените [email protected] и your_domain на ваши значения:
certbot certonly --webroot -m [email protected] -d your_domain --agree-tosПри запросе webroot введите /var/www/html. Сертификат сохранится в /etc/letsencrypt/live/your_domain/.
Важно
- Если порт 80 блокируется firewall-ом, откройте его на время получения сертификата.
Конфигурация Nginx
Отключите дефолтную конфигурацию:
rm /etc/nginx/sites-enabled/defaultСоздайте файл конфигурации:
$EDITOR /etc/nginx/sites-available/your_domain.confВставьте следующие настройки (замените your_domain):
server {
listen 80;
listen [::]:80;
server_name your_domain;
return 301 https://your_domain$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name your_domain;
root /var/www/html/jirafeau;
index index.php;
ssl on;
ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
location ~ \\.php$ {
fastcgi_split_path_info ^(.+\\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}Примечание
- При указанной конфигурации весь HTTP будет перенаправлен на HTTPS.
Активируйте сайт и проверьте конфигурацию:
ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx.serviceУстановка Jirafeau
Скачайте код из репозитория GitLab:
mkdir /var/www/html/jirafeau
git clone https://gitlab.com/mojo42/Jirafeau.git /var/www/html/jirafeauСоздайте каталог для данных вне корня веб-сервера. В примере используется /var/data/jirafeau:
mkdir -p /var/data/jirafeauДайте владельцем каталогов пользователя веб-сервера (www-data):
chown -R www-data:www-data /var/www/html/jirafeau/lib /var/data/jirafeauОткройте браузер и перейдите на https://your_domain/install.php. Установщик попросит создать пароль администратора. Введите базовый адрес https://your_domain/ и путь к каталогу данных /var/data/jirafeau/.
Конфигурация Jirafeau
Установщик создаёт минимальную конфигурацию. Для полной настройки отредактируйте файл:
$EDITOR /var/www/html/jirafeau/lib/config.local.phpИзмените значения организации, контактного лица и заголовка:
'organisation' => 'Your Organisation/Company',
'contactperson' => 'Your Name <[email protected]>',
'title' => 'Title of your choice',Ограничение доступа к загрузке можно задать с помощью паролей:
'upload_password' =>
array (
'password1',
'password2',
),Периоды хранения файлов можно настроить в массиве доступных сроков. Пример разрешающей все периоды:
array (
'minute' => true,
'hour' => true,
'day' => true,
'week' => true,
'month' => true,
'quarter' => true,
'year' => true,
'none' => true,
),После сохранения файла дополнительных действий по применению конфигурации не требуется.
Админ-панель доступна по адресу https://your_domain/admin.php

Рекомендации по безопасности
- Ограничьте доступ к upload-интерфейсу паролями и, при необходимости, IP-фильтрами.
- Размещайте каталог данных вне web-root и с правами, минимально необходимыми для работы.
- Настройте регулярное резервное копирование директории /var/data/jirafeau.
- Обновляйте PHP и Nginx; следите за обновлениями Jirafeau в репозитории.
- Если вы принимаете файлы от незнакомых пользователей, включите сканирование антивирусом на стороне сервера.
Альтернативные подходы
- Docker-контейнер: если вы используете контейнеры, упакуйте Jirafeau с PHP-FPM и Nginx в контейнеры и используйте сети Docker. Упрощает развертывание, но требует знания Docker.
- Apache вместо Nginx: можно использовать Apache + mod_php или php-fpm; конфигурация виртуального хоста и SSL будет другой.
- Прокси через CDN: если ожидается большой трафик, разместите фронтенд за CDN (Cloudflare) и настройте SSL совместимо с Let’s Encrypt.
Когда это не подойдёт
- Нужна полнофункциональная DAM/управление версиями — Jirafeau упрощён и не предназначен для сложной каталогизации.
- Большие корпоративные требования по аудитности и интеграции SSO — потребуется дополнительная интеграция.
Ментальные модели и эвристики
- Минимализм: Jirafeau — решение “менее зависимостей = меньше точек отказа”.
- Разделение ответственности: веб-код в /var/www, данные в /var/data, SSL в /etc/letsencrypt.
- Принцип наименьших привилегий: дать www-data только нужные права.
Роль‑ориентированные чек-листы
Администратор сервера:
- Проверить DNS и открыть порты 80/443
- Получить сертификат Let’s Encrypt
- Настроить права на директории
Оператор приложения:
- Заполнить config.local.php
- Проверить работу инсталлятора
- Настроить пароли загрузки
Пользователь:
- Протестировать загрузку и скачивание
- Проверить сроки удаления и превью
Критерии приёмки
- Сайт доступен по HTTPS и HTTP перенаправляется на HTTPS.
- Страница установки доступна и завершает конфигурацию без ошибок.
- Загруженные файлы сохраняются в /var/data/jirafeau и доступны по ссылке.
- Админ-интерфейс доступен по /admin.php с заданным паролем.
- Права на файлы и каталоги соответствуют принципу наименьших привилегий.
Тестовые сценарии
Установка и первый запуск
- Установить пакеты, получить сертификат, развернуть код.
- Открыть /install.php и пройти шаги.
- Ожидаемый результат: успешно создан config.local.php.
Тест загрузки файла
- Загрузить файл размером 1 МБ, проверить генерацию ссылки и превью.
- Проверить удаление по истечении заданного срока.
Тест пароля загрузки
- Включить upload_password, попытаться загрузить без пароля и с паролем.
- Ожидаемый результат: загрузка доступна только с паролем.
Тест одноразовой загрузки
- Загрузить с опцией одноразового скачивания и проверить удаление после первого скачивания.
Глоссарий
- webroot: корень публичных файлов веб-сервера.
- PHP-FPM: FastCGI Process Manager для PHP.
- Let’s Encrypt: бесплатный центр сертификации для SSL.
Итог
Следуя этой инструкции, вы развернёте Jirafeau на Debian 10 с Nginx и PHP-FPM и получите готовую систему для безопасного обмена файлами. Выполните рекомендации по безопасности, настройте резервное копирование и прогоните тестовые сценарии.
Полезно
- Если планируете интеграцию с корпоративным окружением, заранее продумайте авторизацию и аудит.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента