Installer et configurer FileRun : explorateur de fichiers pour serveur Web

explorateur 7 juin 2017

Pour accéder à mon Amazon Cloud Drive depuis le PC j’ai le choix entre la console, rClone-Browser ou mon gestionnaire de fichiers (Polo en ce moment). En revanche il n’y a rien sous forme de WebUI pour serveur. Je me suis donc lancé en quête d’un gestionnaire de fichiers pour serveur (PHP ou autre) que je pourrais installer sur une machine faisant tourner rClone et permettant ainsi d’accéder à mes fichiers chiffrés ACD.

J’ai pas trouvé grand chose de récent/libre/gratuit/complet. D’ailleurs FileRun n’est que partiellement gratuit, parfaitement utilisable mais avec quelques limitations dans sa version de base, notamment une limitation à 3 comptes utilisateur. Ce qui me suffit.

 

 

 

 

 

FileRun est donc : beau, moderne, relativement complet, bien documenté et simple à mettre en place (Docker). Et vu que c’est Dockerisé ça tourne évidemment sur Linux, Mac et Windows. On trouve même des outils de déploiement pour pas mal de VPS et autres solutions d’hébergements via Cloudron.

 

 

 

 

Installation

Si vous ne voulez/pouvez utiliser ni Docker ni les instances, il vous reste le tutoriel d’installation “à la main” :)  C’est ce que j’ai fait. C’est du simple, voire très simple, il suffit de lire et/ou faire du copier/coller.

 

 

Configuration Apache2

Ayant manipulé Apache avant de connaître Nginx je me porte toujours sur ce premier quand je commence un projet hébergé. Voici un exemple de configuration HTTPS (IPv4 only), un peu de sécu et un certificat Lets Encrypt.

Exemple de fichier de configuration Apache2, de type explossl.conf

ServerName domaine.com

<VirtualHost *:80>
       Redirect / https://domaine.com
</VirtualHost>

<VirtualHost *:443>
       Protocols http/1.1
       SSLEngine on
       ServerAdmin  [email protected]
       DocumentRoot /var/www/explo
       SSLCertificateFile /etc/letsencrypt/live/domaine.com/fullchain.pem
       SSLCertificateKeyFile /etc/letsencrypt/live/domaine.com/privkey.pem
       Include /etc/letsencrypt/options-ssl-apache.conf

        Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
        Header set X-XSS-Protection "1; mode=block"
        Header set X-Content-Type-Options nosniff
        Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
        Header always set Referrer-Policy "no-referrer"
        Header set Connection keep-alive
</VirtualHost>

<Directory /var/www/explo>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Exemple de fichier de configuration SSL : /etc/letsencrypt/options-ssl-apache.conf

SSLProtocol             TLSv1.1 TLSv1.2
SSLCipherSuite          ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
SSLHonorCipherOrder     on
SSLCompression          off
SSLSessionTickets       off
SSLOpenSSLConfCmd       DHParameters "/etc/ssl/certs/dhparam.pem"
SSLUseStapling Off

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" vhost_combined
LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common

Header edit Set-Cookie (?i)^(.*)(;\s*secure)??((\s*;)?(.*)) "$1; Secure$3$4"

Pour générer un certificat SLL Lets Encrypt, utilisez une commande de ce genre. Je vous laisse consulter la doc très complète (et tout aussi claire) de Certbot pour les différents paramètres.

certbot certonly --hsts --rsa-key-size 4096 --uir --webroot -w /var/www/explo -d domaine.com

Et pour le renouvellement automatique placez ça en cron @daily avec un –renew-by-default

 

 

Favicon

J’ai pas vraiment cherché mais je suppose que c’est livré sans favicon pour que chacun puisse en mettre un personnalisé (ou non). Je vais très originalement vous proposer d’ajouter celui de FileRun ^__^ 

Les voici (divers formats). Il faut les extraire directement dans /dossier/de/votre/filerun/, donc à la racine de /var/www ou /var/www/filerun ou ce que vous voulez. Pour ça vous vous placez dans le dossier racine et faites

wget /content/images/wordpress/2017/06/FavicoFileRun.zip
sudo apt install unzip
unzip FavicoFileRun.zip
rm FavicoFileRun.zip

Maintenant que nous avons les favicons il faut aller éditer les fichiers pour qu’il les affichent. Ce qui veut dire qu’en cas de MàJ de FileRun, il faudra refaire cette étape, heureusement y’a pas de MàJ toutes les semaines ! Comme toujours avant d’éditer un fichier faites-en une copie. Rendez-vous dans /dossier/de/votre/filerun/system//modules/fileman/sections/default/html/pages et éditez chaque page concernée : login.html pour que le favicon soit sur cette page, index.html pour qu’il y apparaisse aussi etc. Ce sont les 2 seules pages qu’il m’a semblé utile de modifier (pour un usage perso).

Exemple avec login.html 

cp login.html login.html.backup
nano login/html

Ensuite supprimez la ligne 
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
Et remplacez-la par celles-ci 


<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192"  href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">

Un petit F5 dans votre navigateur et vous aurez vos favicons

 

 

 

Configuration

Je vais me contenter de vous mettre quelques screens, la configuration étant aisée à comprendre (et personnelle). Comme vous allez le voir les permissions pour chaque utilisateur sont poussées pour un tel outil (gratuit), tout comme celles de personnalisation de l’interface ou encore les plugins (qu’on peut désactiver/modifier).

 

 

 

Ajouter un dossier externe

Par défaut les utilisateurs ont des dossiers dans /dossier/de/votre/filerun/system/data/default_home_folder (cf tuto /step 4). Si je veux pouvoir accéder à un dossier dans le /home/USER du serveur il faut alors l’ajouter comme ceci

ln -s /home/USER/dossier /dossier/de/votre/filerun/system/data/default_home_folder

 

Voilà, je peux maintenant profiter de FileRun pour accéder/manipuler mes fichiers stockés sur Amazon Cloud Drive.

 

 

Applications

Outre un accès “direct” depuis Windows, Mac et Linux rendu possible par WebDAV, FileRun possède aussi une application mobile pour (seulement) Android. Pour l’utiliser vous devrez auparavant activer l’API dans votre FileRun.

Et pour ceux sous Windows/iOS il y a un sujet dans les forums.

 

 

Mots clés