Configuration de FileBrowser avec un hôte virtuel Apache
FileBrowser permet d'afficher le contenu d'un répertoire situé sur un serveur via une interface web simple et efficace.
Il est possible de télécharger ou déposer des fichiers, ou de partager un fichier en générant une URL de partage comme dans SharePoint par exemple.
Il est possible de faire fonctionner FileBrowser avec une seule ligne de commande après installation : filebrowser -r /DOWNLOADS/ -p 8182 -a 0.0.0.0
Cependant la communication utilise http sans chiffrement, et l'utilisation d'un port exotique pose parfois problème. Voici donc comment configurer "proprement" FileBrowser.
Installation et configuration de FileBrowser
Installer FileBrowser
Installer FileBrowser en utilisant le script d'installation suivant :
Créer un utilisateur dédié
Créer un utilisateur dédié pour exécuter FileBrowser :
Configurer les répertoires et permissions
Créer les répertoires nécessaires pour FileBrowser :
Définir les permissions pour ces répertoires :
sudo chown -R filebrowseruser:filebrowseruser /etc/filebrowser /FileBrowser
sudo chmod -R 700 /etc/filebrowser /FileBrowser
Fichiers de configuration de FileBrowser
Créer un fichier de configuration JSON pour FileBrowser :
Ajouter le contenu suivant :
{
"port": 8182,
"address": "127.0.0.1",
"baseURL": "",
"log": "stdout",
"database": "/etc/filebrowser/filebrowser.db",
"root": "/FileBrowser",
}
Création du service systemd
Créer un fichier de service systemd pour FileBrowser :
Ajouter le contenu suivant :
[Unit]
Description=FileBrowser Service
After=network.target
[Service]
User=filebrowseruser
Group=filebrowseruser
ExecStart=/usr/local/bin/filebrowser -c /etc/filebrowser/filebrowser.json
WorkingDirectory=/FileBrowser
Restart=always
[Install]
WantedBy=multi-user.target
Recharger systemd et démarrez le service FileBrowser :
sudo systemctl daemon-reload
sudo systemctl start filebrowser.service
sudo systemctl enable filebrowser.service
Vérifier que le service fonctionne correctement :
Configuration DNS
Créer une entrée de type A sur le DNS pointant vers https://files.fabzh.eu
Configuration de Apache2
Création de l'hôte virtuel
Créer le fichier de configuration de l'hôte avec la commande nano /etc/apache2/sites-available/files.fabzh.eu.conf
et insérer ceci :
<VirtualHost *:443>
ServerName files.fabzh.eu
SSLEngine on
ProxyPreserveHost On
ProxyPass / http://localhost:8182/
ProxyPassReverse / http://localhost:8182/
ErrorLog ${APACHE_LOG_DIR}/files.fabzh.eu-error.log
CustomLog ${APACHE_LOG_DIR}/files.fabzh.eu-access.log combined
SSLCertificateFile /etc/letsencrypt/live/files.fabzh.eu/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/files.fabzh.eu/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
a2ensite files.fabzh.eu.conf
.
Générer le certificat SSL
Générer le certificat SSL avec la commande certbot --apache -d files.fabzh.eu
.
Debug
Exécuter FileBrowser en tant que filbrowseruser
Si le service ne démarre pas, vérifier comment se passe le démarrage de l'exécutable avec l'utilisateur dédié avec la commande suivante :
Ajouter un utilisateur en ligne de commande
Se positionner dans le répertoire contenant le fichier de configuration, arrêter le service FileBrowser, créer l'utilisateur, le rendre administrateur (optionnel) puis redémarrer le service :
cd /etc/FileBrowser
systemctl stop filebrowser.service
filebrowser users add TOTO 'P@ssw0rd!!'
filebrowser users update --perm.admin TOTO
systemctl start filebrowser.service
Sécurisation
Par défaut, l'utilisateur est admin
et le mot de passe admin
... A changer directement !