Гид по технологиям

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

• 4 min read • Инструкции • Обновлено 26 Nov 2025
Jirafeau на Debian 10: установка и настройка
Jirafeau на Debian 10: установка и настройка

Общий вид интерфейса Jirafeau

Краткое содержание

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

Интерфейс загрузки Jirafeau в браузере

Рекомендации по безопасности

  • Ограничьте доступ к 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 с заданным паролем.
  • Права на файлы и каталоги соответствуют принципу наименьших привилегий.

Тестовые сценарии

  1. Установка и первый запуск

    • Установить пакеты, получить сертификат, развернуть код.
    • Открыть /install.php и пройти шаги.
    • Ожидаемый результат: успешно создан config.local.php.
  2. Тест загрузки файла

    • Загрузить файл размером 1 МБ, проверить генерацию ссылки и превью.
    • Проверить удаление по истечении заданного срока.
  3. Тест пароля загрузки

    • Включить upload_password, попытаться загрузить без пароля и с паролем.
    • Ожидаемый результат: загрузка доступна только с паролем.
  4. Тест одноразовой загрузки

    • Загрузить с опцией одноразового скачивания и проверить удаление после первого скачивания.

Глоссарий

  • webroot: корень публичных файлов веб-сервера.
  • PHP-FPM: FastCGI Process Manager для PHP.
  • Let’s Encrypt: бесплатный центр сертификации для SSL.

Итог

Следуя этой инструкции, вы развернёте Jirafeau на Debian 10 с Nginx и PHP-FPM и получите готовую систему для безопасного обмена файлами. Выполните рекомендации по безопасности, настройте резервное копирование и прогоните тестовые сценарии.

Полезно

  • Если планируете интеграцию с корпоративным окружением, заранее продумайте авторизацию и аудит.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро