Installation de LUFI

Logo

Attention
La peinture est fraîche, cette page est amenée à évoluer rapidement. LUFI s’installe de la même manière que Lutim. Si vous avez besoin de plus de détail la documentation officielle (en anglais) se trouve sur le dépôt de LUFI.

<!–

–>
LUFI est le logiciel d’hébergement de fichier que nous proposons sur Framadrop.
<!–

–>
Voici un tutoriel pour vous aider à l’installer sur votre serveur.

N’hésitez pas à poser des questions dans les commentaires. Si vous êtes parvenu à l’installer, donnez-nous le lien vers votre instance et dites-nous dans quelle mesure ce tutoriel vous aura été utile :)

Informations
Dans la suite de ce tutoriel, nous supposerons que vous avez déjà fait pointer votre nom de domaine sur votre serveur auprès de votre registraire et que vous disposez d’un serveur dédié sous Debian.

Prérequis

LUFI est codé en Perl, pour le faire fonctionner il est nécessaire d’installer Carton, un gestionnaire de modules Perl.

cpan Carton

Installation

1 – Préparer la terre

Tout d’abord, connectez-vous en tant que root sur votre serveur et créez un compte utilisateur lufi ainsi que le dossier /var/www/lufi dans lequel seront copiés les fichiers avec les droits d’accès correspondants.

useradd lufi
groupadd lufi
mkdir /var/www/lufi
chown -R lufi:lufi /var/www/lufi

2 – Semer

Téléchargez les fichiers de la dernière version sur le dépôt officiel (« Download zip » en bas à droite ou bien en ligne de commande avec git), copiez son contenu dans le dossier /var/www/lufi et attribuez les droits des fichiers à l’utilisateur lufi

cd /var/www/
git clone https://git.framasoft.org/luc/lufi.git
chown lufi:lufi -R /var/www/lufi

<!–

–>
Connectez-vous avec l’utilisateur lufi : su lufi -s /bin/bash et lancez la commande d’installation des dépendances depuis le dossier /var/www/lufi

cd /var/www/lufi
su lufi -s /bin/bash
carton install

Maintenant que tout est prêt, modifiez le fichier de configuration de LUFI lufi.conf avec votre éditeur de texte préféré sur le modèle du fichier lufi.conf.template.

Par défaut le logiciel est configuré pour écouter sur le port 8080 de l’adresse 127.0.0.1 (localhost) et avec l’utilisateur www-data qu’il faut donc ici remplacer par lufi

cp lufi.conf.template lufi.conf
vi lufi.conf

L’ensemble des paramètres sont facultatifs à l’exception du paramètre contact (pensez bien à le configurer et à le décommenter).

Lufi en tant que service

À présent, le serveur tournera lorsque qu’on lancera en tant que root cette commande :

carton exec hypnotoad script/lufi

Pour éviter de devoir relancer le serveur à la main à chaque redémarrage du serveur, on va donc lancer LUFI sous forme de service. Il faut pour ça copier le script utilities/lufi.init dans le fichier /etc/init.d/lufi, le rendre exécutable puis copier le fichier utilities/lufi.default dans /etc/default/lufi.

cp utilities/lufi.init /etc/init.d/lufi
cp utilities/lufi.default /etc/default/lufi

Il faut maintenant modifier /etc/default/lufi pour y mettre le chemin d’installation de notre LUFI (/var/www/lufi si vous n’avez pas changé le chemin préconisé par ce tutoriel)

vi /etc/default/lufi
chmod +x /etc/init.d/lufi
chown root:root /etc/init.d/lufi /etc/default/lufi

4 – Pailler

À ce stade, si tout s’est bien passé, lorsque vous exécutez la commande service lufi start, LUFI est pleinement fonctionnel. Vous n’avez qu’à vous rendre sur l’URL http://127.0.0.1:8080 pour pouvoir l’utiliser.
<!–

–>
Nous allons maintenant configurer LUFI pour le rendre accessible depuis un nom de domaine avec Nginx (vous pouvez également utiliser Apache ou Varnish puisque seule la fonctionnalité de proxy inverse nous intéresse).

Nginx

Installez le paquet :

apt-get install nginx

Créez le fichier de configuration de votre domaine /etc/nginx/sites-available/votre-nom-de-domaine pour y mettre ceci (en remplaçant « votre-nom-de-domaine ») et le port 8080 si vous l’avez changé dans la configuration de LUFI :

server {
    listen 80;

    server_name votre-nom-de-domaine;

    access_log /var/log/nginx/lufi.success.log;
    error_log /var/log/nginx/lufi.error.log;

    location / {
        # Add cache for static files
        if ($request_uri ~* ^/(img|css|font|js)/) {
            add_header Expires "Thu, 31 Dec 2037 23:55:55 GMT";
            add_header Cache-Control "public, max-age=315360000";
        }
        # HTTPS only header, improves security
        #add_header Strict-Transport-Security "max-age=15768000";

        # Adapt this to your configuration
        proxy_pass  http://127.0.0.1:8080;

        # Really important! Lufi uses WebSocket, it won't work without this
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # If you want to log the remote port of the file senders, you'll need that
        proxy_set_header X-Remote-Port $remote_port;

        proxy_set_header X-Forwarded-Proto $scheme;

        # We expect the downstream servers to redirect to the right hostname, so don't do any rewrites here.
        proxy_redirect     off;
    }
}

Activez votre fichier :

ln -s /etc/nginx/sites-available/votre-nom-de-domaine /etc/nginx/sites-enabled/votre-nom-de-domaine 

Enfin, relancez nginx : service restart nginx

5 – Tailler et désherber

Pour personnaliser votre instance de LUFI, il faut copier le dossier themes/default dans un nouveau dossier themes/votre-theme. Vous pouvez ainsi modifier les fichiers css, images, javascript et la traduction (lib/Lufi/I18N) en conservant un thème propre sur lequel basuculer en cas de problème.

Modifiez ensuite le fichier lufi.conf pour préciser quel thème vous utilisez.

Pour pouvoir personnaliser et observer vos modifications en direct, il vous faudra stopper temporairement le service service lufi stop et le démarrer avec la commande :

carton exec morbo script/lufi --listen=http://127.0.0.1:8080

(Source: Framacloud)

Étiquettes: