Jirafeau est une simple application web d'hébergement et de partage de fichiers construite en PHP. Il ne nécessite pas de base de données et fournit une interface utilisateur propre et facile à utiliser avec 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 vous 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 vous disposez d'un accès root.
- Un nom de domaine pointant vers votre serveur.
- La variable d'environnement $EDITOR doit être définie.
Si vous êtes connecté en tant qu'utilisateur sudo non root, utilisez un shell privilégié pour exécuter les commandes présentées dans ce guide. Vous pouvez lancer un root shell avec :
sudo -s
Installation Jirafeau
Mise à jour du système et installation des dépendances
Commencez par mettre à jour votre système :
apt update apt upgrade -y reboot
Une fois le système redémarré, installez les packages logiciels requis avec la commande suivante :
apt install -y nginx php php-fpm certbot git
Assurez-vous ensuite que Nginx et PHP-FPM sont 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, vous devez obtenir un certificat SSL pour votre domaine. Pour ce faire, utilisez l'outil certbot comme indiqué :
certbot certonly --webroot -m [email protected] -d your_domain --agree-tos
Après avoir exécuté cette commande, il vous sera d'abord demandé si vous souhaitez recevoir des e-mails de l'EFF. Ensuite, lorsque vous êtes invité à saisir la racine Web de votre domaine, saisissez /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 votre certificat et les fichiers associés seront enregistrés dans /etc/letsencrypt/live/votre_domaine/. Nous pouvons maintenant configurer Nginx.
Configuration Nginx
Désactivez le fichier de configuration par défaut car il n'est pas nécessaire :
rm /etc/nginx/sites-enabled/default
Créez ensuite un nouveau fichier de configuration :
$EDITOR /etc/nginx/sites-available/your_domain.conf
Et entrez 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 requêtes HTTP seront redirigées vers HTTPS.
Ensuite, activez 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/
Recherchez d'éventuelles erreurs de configuration avec :
nginx -t
Chargez-le ensuite en lançant la commande :
systemctl reload nginx.service
Installer Jirafeau
Téléchargez 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éer un répertoire de données pour Jirafeau. Ce répertoire ne doit pas être accessible via votre serveur Web (c'est-à-dire qu'il doit résider en dehors du répertoire racine Web, qui est /var/www/html avec notre configuration). Nous utiliserons /var/data/jirafeau.
mkdir -p /var/data/jirafeau
Donnez à l'utilisateur Nginx la propriété des répertoires de configuration et de données utilisés par Jirafeau. Idéalement, vous devriez resserrer les autorisations de fichiers une fois votre configuration terminée.
chown -R www-data:www-data /var/www/html/jirafeau/lib /var/data/jirafeau
Ouvrez ensuite votre navigateur Web et accédez à https://votre_domaine/install.php. Il vous sera d'abord demandé de choisir un mot de passe pour l'interface d'administration. Entrez un mot de passe sécurisé et passez à l'étape suivante. Pour l'adresse de base, saisissez https://votre_domaine/, et /var/data/jirafeau/ pour le répertoire de données. Passez à l'étape suivante, au cours de laquelle le programme d'installation créera un fichier de configuration de base pour Jirafeau.
Configurer Jirafeau
Le script d'installation intégré ne configure que l'essentiel. Pour une configuration plus poussée, ouvrez le fichier correspondant :
$EDITOR /var/www/html/jirafeau/lib/config.local.php
Remplacez le nom d'organisation par défaut et définissez les clés de contact et de titre. Les valeurs de l'organisation et de la personne de contact seront affichées dans vos conditions d'utilisation (https://votre_domaine/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 est illimité. Vous pouvez définir un ou plusieurs mots de passe pour limiter cet accès. Utilisez la syntaxe indiquée :
'upload_password' => array ( 'password1', 'password2', ),
Lors du téléchargement d'un fichier, différents délais sont disponibles dans le formulaire de téléchargement. Jirafeau autorise par défaut des délais allant jusqu'à un mois, après quoi les fichiers téléchargés sont supprimés. Pour changer les périodes disponibles, modifiez le tableau des disponibilités. Par exemple, pour autoriser toutes les périodes d'expiration, utilisez ce qui suit :
array ( 'minute' => true, 'hour' => true, 'day' => true, 'week' => true, 'month' => true, 'quarter' => true, 'year' => true, 'none' => true, ),
Une fois que vous êtes satisfait de votre configuration, aucune action n'est requise pour appliquer les modifications.
Votre site Web d'hébergement de fichiers est maintenant prêt à être utilisé. L'interface d'administration est accessible à l'adresse https://votre_domaine/admin.php