Comment configurer un site Web de partage de fichiers avec Jirafeau sur Debian 10

Jirafeau est une application web simple d’hébergement et de partage de fichiers construite en PHP. Elle ne nécessite pas de base de données et offre une interface utilisateur propre et facile à utiliser avec la prise en charge de la protection par mot de passe, de l’expiration programmée, des téléchargements uniques (autodestruction) et de la prévisualisation dans le navigateur, entre autres fonctionnalités utiles.

Cet article te guidera dans l’installation et la configuration de Jirafeau sur Debian 10 à partir de zéro, avec Nginx et PHP-FPM.

Exigences

  • Un système Debian 10 sur lequel tu as un accès root.
  • Un nom de domaine pointant vers ton serveur.
  • La variable d’environnement $EDITOR doit être définie.

Si tu es connecté en tant qu’utilisateur sudo non root, utilise un shell privilégié pour exécuter les commandes présentées dans ce guide. Tu peux lancer un shell root avec :

sudo -s

Installation de Jirafeau

Mise à jour du système et installation des dépendances

Commence par mettre à jour ton système :

apt update
apt upgrade -y
reboot

Une fois que le système est à nouveau opérationnel, installe les paquets de logiciels nécessaires avec la commande suivante :

apt install -y nginx php php-fpm certbot git

Assure-toi ensuite que Nginx et PHP-FPM sont tous deux activés et en cours d’exécution :

systemctl enable --now nginx.service php7.3-fpm.service

Obtenir un certificat SSL

Avant de configurer le serveur Web, tu dois obtenir un certificat SSL pour ton domaine. Pour ce faire, utilise l’outil certbot comme indiqué :

certbot certonly --webroot -m [email protected] -d your_domain --agree-tos

Après avoir exécuté cette commande, il te sera d’abord demandé si tu veux recevoir des e-mails de l’EFF. Ensuite, lorsqu’il te sera demandé de saisir le webroot de ton domaine, entre /var/www/html:

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for example.com
Input the webroot for example.com: (Enter 'c' to cancel): /var/www/html

La propriété du domaine sera vérifiée et ton certificat et les fichiers associés seront enregistrés dans /etc/letsencrypt/live/ton_domaine/. Nous pouvons maintenant configurer Nginx.

Configuration de Nginx

Désactive le fichier de configuration par défaut car il n’est pas nécessaire :

rm /etc/nginx/sites-enabled/default

Puis crée un nouveau fichier de configuration :

$EDITOR /etc/nginx/sites-available/your_domain.conf

Et saisis ce qui suit :

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;
    }
}

REMARQUE :Avec la configuration fournie, toutes les demandes HTTP seront redirigées vers HTTPS.

Ensuite, active le nouveau fichier de configuration en créant un lien symbolique dans le répertoire /etc/nginx/sites-enabled/:

ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/

Vérifie s’il y a des erreurs de configuration avec :

nginx -t

Puis charge-le en lançant la commande :

systemctl reload nginx.service

Installer Jirafeau

Télécharge Jirafeau depuis son dépôt Gitlab :

mkdir /var/www/html/jirafeau
git clone https://gitlab.com/mojo42/Jirafeau.git /var/www/html/jirafeau

Crée un répertoire de données pour Jirafeau. Ce répertoire ne doit pas être accessible par ton serveur Web (c’est-à-dire qu’il doit résider en dehors du répertoire racine du Web, qui est /var/www/html avec notre configuration). Nous utiliserons /var/data/jirafeau.

mkdir -p /var/data/jirafeau

Donne à l’utilisateur Nginx la propriété des répertoires de configuration et de données utilisés par Jirafeau. De manière optimale, tu devrais resserrer les permissions des fichiers une fois que ta configuration est terminée.

chown -R www-data:www-data /var/www/html/jirafeau/lib /var/data/jirafeau

Ensuite, ouvre ton navigateur Web et navigue sur https://your_domain/install.php. Il te sera d’abord demandé de choisir un mot de passe pour l’interface d’administration. Saisis un mot de passe sécurisé et passe à l’étape suivante. Pour l’adresse de base, entre https://your_domain/, et /var/data/jirafeau/ pour le répertoire de données. Passe à l’étape suivante, pendant laquelle le programme d’installation créera un fichier de configuration de base pour Jirafeau.

Configuration de Jirafeau

Le script d’installation intégré ne configure que l’essentiel. Pour une configuration plus approfondie, ouvre le fichier correspondant :

$EDITOR /var/www/html/jirafeau/lib/config.local.php

Remplace le nom de l’organisation par défaut et configure les clés de la personne de contact et du titre. Les valeurs de l’organisation et de la personne de contact seront affichées dans tes conditions de service(https://your_domain/tos.php).

  'organisation' => 'Your Organisation/Company',
  'contactperson' => 'Your Name <[email protected]>',
  'title' => 'Title of your choice',

Par défaut, l’accès à la fonction de téléchargement n’est pas limité. Tu peux définir un ou plusieurs mots de passe pour restreindre cet accès. Utilise la syntaxe indiquée :

  'upload_password' =>
  array (
          'password1',
          'password2',
  ),

Lors du téléchargement d’un fichier, différentes limites de temps sont disponibles dans le formulaire de téléchargement. Par défaut, Jirafeau autorise des délais allant jusqu’à un mois, après quoi les fichiers téléchargés sont supprimés. Pour modifier les périodes disponibles, modifie le tableau des disponibilités. Par exemple, pour autoriser toutes les périodes d’expiration, utilise ce qui suit :

  array (
    'minute' => true,
    'hour' => true,
    'day' => true,
    'week' => true,
    'month' => true,
    'quarter' => true,
    'year' => true,
    'none' => true,
  ),

Une fois que tu es satisfait de ta configuration, aucune action n’est nécessaire pour appliquer les modifications.

Ton site Web d’hébergement de fichiers est maintenant prêt à être utilisé. L’interface d’administration est accessible à l’adresse https://your_domain/admin.php.

jirafeau upload interface

Vous aimerez aussi...