Jirafeau — web-базированный open-source движок для обмена файлами с возможностью установки времени хранения файлов и пароля на скачивание. Устанавливать будем на ubuntu с nginx и php-fpm.
Устанавливаем пакет git:
$ apt install git
Переходим в директорию, которая будет использоваться для файлообменника и клонируем в нее движок JIRAFEAU. И проверяем, что файлы скачались.
$ cd /var/www/jirafeau
/var/www/jirafeau#$ git clone https://gitlab.com/mojo42/Jirafeau.git .
/var/www/jirafeau#$ ls -1
CHANGELOG.md
CONTRIBUTING.md
Dockerfile
LICENSES
README.md
admin.php
composer.json
docker
f.php
index.php
install.php
lib
media
script.php
tos.php
Правим и перезапускаем конфиг nginx (в примере используется домен files.lan). При необходимости — установите сертификат SSL.
$ nano /etc/nginx/sites-available/default
server {
listen 80;
root /var/www/jirafeau;
index index.php;
server_name files.lan;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
}
$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ service nginx reload
Теперь в браузере переходим по адресу, к которому привязана папка с файлами JIRAFEAU, откроется установщик. На первом шаге необходимо задать пароль администратора.
Далее указываем путь к директории, в которой будут храниться файлы и имя домена.
Установка выполнена.
Интерфейс выглядит довольно лаконично.
Меню загрузки файла.
Конфигурационный файл лежит по адресу lib/config.local.php. В нём можно выбрать один из предустановленных дизайнов. Примеры:
'style' => 'courgette',
'style' => 'dark-courgette',
'style' => 'elegantish',
'style' => 'industrial',
'style' => 'jyraphe',
'style' => 'modern',
Задать допустимое время хранения файла:
'availabilities' =>
array (
'minute' => true,
'hour' => true,
'day' => true,
'week' => true,
'month' => false,
'quarter' => false,
'year' => false,
'none' => false,
),
'availability_default' => 'week',
'one_time_download' => true,