Tuto Erugo self hosted
  • 21 juillet 2025
  • ComputaSYS
  • 0


I. Présentation

Découvrez Erugo, une solution open source vous permettant de déployer votre propre service de transfert de fichiers, à la manière de WeTransfer. Que ce soit pour un usage personnel ou pour un usage professionnel, afin de proposer un portail de partage aux couleurs de votre entreprise, Erugo se présente comme une alternative pertinente et facile à mettre en œuvre.

Si vous recherchez une alternative à WeTransfer, vous pouvez opter pour une solution Cloud comme Smash (français) ou SwissTransfer (Suisse, Infomaniak) ou une solution dite self-hosted, c’est-à-dire héberger sur votre serveur. À ce sujet, il y a trois outils open source : Erugo, ProjectSend, Send (une version auto-hébergeable du service de Mozilla).

Erugo est un projet open source assez jeune, car il n’a que quelques mois. Pourtant, ses fonctionnalités et son interface moderne m’ont donné envie de vous en parler dans cet article. Ce tutoriel vous guidera à travers les étapes d’installation et de configuration de votre propre instance Erugo à l’aide de Docker.

Cet article fait suite à l’actualité récente autour de WeTransfer :

II. Caractéristiques d’Erugo

Le projet propose un ensemble de fonctionnalités intéressantes, capables de répondre aux besoins des particuliers et des professionnels.

Déploiement simplifié : l’utilisation de Docker rend l’installation rapide et accessible, à condition de connaître un minimum cette techno. Vous pouvez envisager une installation sur un serveur, un NAS, etc…

Liens de partage : génère des URL uniques pour chaque partage.

Gestion d’utilisateurs et fédération des identités : vous pouvez créer des comptes utilisateurs et administrateurs, et même effectuer de la fédération d’identité (Microsoft, Google, OpenID Connect, Authentik).

Gestion des accès : seuls les utilisateurs authentifiés peuvent créer des partages, tandis que le téléchargement reste accessible à toute personne disposant du lien.

Configuration des partages : permet d’ajuster la taille maximale des envois, la durée de rétention des fichiers, etc.

Gestion des partages : chaque utilisateur peut gérer ses partages (décaler l’expiration, expirer maintenant, etc.).

Interface web moderne et personnalisable : l’interface est personnalisable grâce à des thèmes et l’utilisation de fond d’écran et logo personnalisés, ce qui est idéal pour personnaliser l’instance aux couleurs de votre entreprise.

Notifications par e-mail : configurez le SMTP directement dans Erugo et utilisez des e-mails personnalisés.

Multilingue : L’interface est disponible en plusieurs langues, dont le français.

III. Installation d’Erugo avec Docker

A. Prérequis

Pour suivre ce tutoriel, vous aurez besoin de :

Un serveur sous une distribution Linux (Debian, Ubuntu, etc.).

Docker installé sur ce serveur.

Un accès au terminal de votre serveur (sudo ou root)

Un nom de domaine avec un enregistrement DNS associé (pour la publication de l’application)

Si vous avez besoin d’aide pour installer Docker, suivez ce tutoriel :

B. Docker Compose pour Erugo

Dans le cadre de ce tutoriel, nous allons déployer l’application sur Debian avec Docker. Erugo sera accessible à l’adresse https://erugo.it-connect.fr. Le déploiement repose sur trois conteneurs :

Erugo : l’application en-elle même

Nginx : utilisation en tant que reverse proxy pour publier l’application

Certbot : obtenir un certificat TLS gratuit avec Let’s Encrypt

Commencez par créer un répertoire pour accueillr le projet :

sudo mkdir -p /opt/docker-compose/erugo

Puis, l’ensemble des répertoires nécessaires pour déployer ce projet :

sudo mkdir -p /opt/docker-compose/erugo/{erugo,nginx/conf.d,nginx/certbot/{conf,www}}
cd /opt/docker-compose/erugo/

L’idée étant d’obtenir cette arborescence :

/opt/docker-compose/erugo
├── docker-compose.yml
├── nginx/
│ ├── conf.d/
│ │ └── erugo.conf
│ └── certbot/
└── erugo/

Le dossier erugo contiendra les fichiers de notre application, tandis que le dossier nginx contiendra le fichier de configuration pour le reverse proxy, à savoir erugo.conf. Le dossier certbot contiendra plusieurs fichiers liés à l’obtention des certificats, dont le certificat en lui-même et sa clé privée.

Ensuite, passez à la création du fichier Docker Compose :

sudo nano docker-compose.yml

Nous déclarons donc 3 conteneurs connectés sur le même réseau Docker : erugo-net. Il est intéressant de noter que les conteneurs nginx-proxy et certbot partagent des répertoires en commun : utile pour que le reverse proxy accède nativement au certificat généré par Certbot.

services:
erugo:
image: wardy784/erugo:latest
container_name: erugo
restart: unless-stopped
volumes:
– ./erugo:/var/www/html/storage
ports:
– “9998:80”
networks:
– erugo-net

nginx:
image: nginx:latest
container_name: nginx-proxy
volumes:
– ./nginx/conf.d:/etc/nginx/conf.d:ro
– ./nginx/certbot/conf:/etc/letsencrypt
– ./nginx/certbot/www:/var/www/certbot
ports:
– “80:80”
– “443:443”
depends_on:
– erugo
networks:
– erugo-net

certbot:
image: certbot/certbot
container_name: certbot
volumes:
– ./nginx/certbot/conf:/etc/letsencrypt
– ./nginx/certbot/www:/var/www/certbot
entrypoint: “/bin/sh -c ‘trap exit TERM; while :; do sleep 3600; done'”
networks:
– erugo-net

networks:
erugo-net:

Enregistrez et fermez le fichier. Il n’est pas encore temps de lancer le projet…

C. La configuration de Nginx pour Erugo

Nous allons créer le fichier erugo.conf pour configurer un hôte virtuel pour notre application Erugo. Créez le fichier suivant :

sudo nano /opt/docker-compose/erugo/nginx/conf.d/erugo.conf

Indiquez le code suivant (adaptez le nom de domaine de votre application) :

server {
listen 80;
server_name erugo.it-connect.fr;

location /.well-known/acme-challenge/ {
root /var/www/certbot;
}

location / {
return 301 https://$host$request_uri;
}
}

Pour l’instant, nous ne configurons pas Nginx comme reverse proxy ! En effet, sinon, nous allons pointer vers un certificat TLS qui n’existera pas, ce qui aura pour effet d’empêcher le démarrage de Nginx… Donc, nous allons le démarrer en tant que serveur web sur le port 80 pour le premier démarrage, le temps d’obtenir le certificat TLS.

Lancez les conteneurs Nginx et Erugo :

sudo docker compose up -d nginx erugo

Vérifiez qu’ils sont bien lancés via la commande suivante :

sudo docker ps

Puis, lancez la commande suivante pour lancer le conteneur Certbot avec les bonnes options pour automatiser l’obtention d’un certificat. Dans la commande ci-dessous, vous devez simplement adapter le nom de domaine (option -d).

docker run –rm \
-v “/opt/docker-compose/erugo/nginx/certbot/conf:/etc/letsencrypt” \
-v “/opt/docker-compose/erugo/nginx/certbot/www:/var/www/certbot” \
certbot/certbot certonly \
–webroot \
–webroot-path=/var/www/certbot \
-d erugo.it-connect.fr \
–agree-tos \
–register-unsafely-without-email

Vous devriez obtenir un message de confirmation, avec à la clé, l’obtention de votre certificat Let’s Encrypt.

Si c’est tout bon, modifiez de nouveau le fichier erugo.conf de Nginx. Cette fois-ci, nous ajoutons un second bloc server pour spécifier la configuration HTTPS et le positionner comme reverse proxy. Il pourra démarrer puisque nous avons le certificat et sa clé privée en notre possession.

J’attire votre attention sur l’instruction proxy_pass http://erugo:80; : elle indique à Nginx de transférer les requêtes reçues vers le conteneur nommé erugo en utilisant le port 80 (ce qui doit être cohérent avec les valeurs utilisés dans le Docker Compose).

server {
listen 80;
server_name erugo.it-connect.fr;

location /.well-known/acme-challenge/ {
root /var/www/certbot;
}

location / {
return 301 https://$host$request_uri;
}
}

server {
listen 443 ssl;
server_name erugo.it-connect.fr;

ssl_certificate /etc/letsencrypt/live/erugo.it-connect.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/erugo.it-connect.fr/privkey.pem;

client_max_body_size 100M;

location / {
proxy_pass http://erugo:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

Enregistrez et fermez.

Exécutez une commande dans le conteneur nginx-proxy pour recharger la configuration de Nginx. Ainsi, il va prendre en compte le nouveau fichier de configuration.

sudo docker exec nginx-proxy nginx -s reload

À partir de là, vous devriez avoir accès à votre application Erugo.

D. Première connexion à Erugo

À partir de votre navigateur préféré, l’application Erugo doit être accessible sur le nom de domaine que vous avez retenu. La connexion HTTPS doit être sécurisée grâce à votre certificat. Vous devez commencer par créer un compte administrateur. Même si ce compte sert aussi à créer des partages, sa fonction première, c’est de donner accès à la configuration.

Pour personnaliser votre instance, cliquez sur l’icône en forme d’engrenage en bas à droite de l’interface. La navigation par onglet donne accès à différentes options.

Pour commencer, cliquez sur l’onglet “Paramètres du système” pour effectuer les premières actions de configuration :

Default Language : la langue par défaut de l’interface, vous pouvez passer en français. Rafraichissez la page dans la foulée.

Nom de l’application : le nom qui s’affichera dans le titre de l’onglet du navigateur.

URL de l’application : renseignez l’URL complète d’accès à votre instance (ex : https://erugo.it-connect.fr). Cette étape est importante pour que les liens de partage générés soient corrects.

Message de connexion : un message personnalisé qui apparaîtra sur la page de connexion.

Afficher le sélecteur de langue : cochez cette case pour permettre aux visiteurs de changer la langue.

N’oubliez pas de cliquer sur “Sauvegarder les paramètres du système” en haut à droite pour appliquer les modifications.

E. Renouvellement automatique du certificat

À ce jour, les certificats Let’s Encrypt sont valides 3 mois, ce qui implique de gérer le renouvellement automatique. Vous pouvez déjà commencer par lancer la commande ci-dessous pour faire un dry-run, c’est-à-dire une simulation pour le renouvellement.

sudo docker run –rm -v “/opt/docker-compose/erugo/nginx/certbot/conf:/etc/letsencrypt” -v “/opt/docker-compose/erugo/nginx/certbot/www:/var/www/certbot” certbot/certbot renew –webroot –webroot-path=/var/www/certbot –dry-run

Vous pouvez automatiser cette action via une tâche cron (tâche planifiée) à ajouter dans la crontab :

sudo crontab -e

Vous pouvez alors ajouter cette ligne :

0 3 * * * docker run –rm -v “/opt/docker-compose/erugo/nginx/certbot/conf:/etc/letsencrypt” -v “/opt/docker-compose/erugo/nginx/certbot/www:/var/www/certbot” certbot/certbot renew –webroot –webroot-path=/var/www/certbot –quiet && docker exec nginx-proxy nginx -s reload

Cette ligne planifie une tâche quotidienne à 3h du matin pour renouveler automatiquement les certificats Let’s Encrypt via Certbot, puis recharger Nginx si un renouvellement a eu lieu.

IV. Utilisation quotidienne

A. Envoyer des fichiers

Depuis la page d’accueil, le processus d’envoi est très simple :

Cliquez sur Ajouter fichier(s) pour sélectionner un ou plusieurs fichiers, ou sur Ajouter dossier(s) pour envoyer un dossier complet.

Dans le champ Ajouter destinataire(s), vous pouvez indiquer une ou plusieurs adresses e-mail de destination. Les destinataires recevront alors un lien direct pour le téléchargement. Si vous laissez ce champ vide, Erugo générera un simple lien de partage à copier : libre à vous de le communiquer ensuite.

Vous pouvez également ajouter un titre à ce partage et un message pour accompagner votre envoi.

Cliquez sur le bouton Télécharger pour charger vos fichiers sur la plateforme. Une fois l’envoi terminé, le lien de partage s’affiche à l’écran. Vous pouvez le copier. Votre destinataire a aussi reçu une notification par e-mail.

Vous pouvez déterminer la durée de validité du partage et le protéger par un mot de passe. Sans ce mot de passe, le destinataire ne peut pas accéder aux fichiers. Autre point intéressant : la fonctionnalité de partage inversé. Elle permet à un utilisateur de générer une demande unique afin qu’une personne externe puisse lui transmettre des fichiers en toute sécurité, via le portail Erugo.

Par la suite, la personne qui recevra le lien verra une page de téléchargement, affichant les fichiers, le message et un bouton pour tout télécharger. S’il y a plusieurs fichiers, tout est téléchargé via une archive ZIP.

B. Consulter et gérer les partages

Pour suivre vos partages actifs, retournez dans les paramètres et cliquez sur l’onglet Mes partages. Cette page est spécifique pour chaque utilisateur. Vous y trouverez la liste de vos envois avec plusieurs options :

Expirer maintenant : invalide immédiatement un lien de partage.

Prolonger : Prolonge la durée de validité d’un partage.

Icône de téléchargement : permet de télécharger à nouveau les fichiers du partage.

Vous avez aussi des informations sur le contenu, un lien direct, et même le nombre de téléchargements.

V. Administration de l’instance

A. Configurer les règles de partage

La section Partage dans les paramètres système vous donne le contrôle sur les limites de votre service, et la possibilité de choisir des valeurs par défaut. Par exemple :

Délai d’expiration par défaut : définissez la durée de validité maximale d’un partage (en jours). L’utilisateur peut revoir à la baisse lors de la création d’un partage.

Taille maximale d’un partage : indiquez la taille totale maximale autorisée pour un envoi.

Nettoyer les fichiers après : configurez le délai (en jours) après lequel les fichiers expirés seront automatiquement supprimés du disque pour libérer de l’espace.

B. Gérer les utilisateurs

Si vous souhaitez que d’autres personnes puissent se connecter pour envoyer des fichiers, rendez-vous dans l’onglet Utilisateurs des paramètres système, et cliquez sur Ajouter un utilisateur. Vous pouvez aussi visualiser les utilisateurs existants et les gérer.

Lors de la création d’un utilisateur, vous pouvez décider s’il s’agit d’un administrateur ou d’un simple utilisateur. Pour rappel, sans compte, il est impossible de créer un partage (sauf via un partage inversé, sur invitation), ce qui assure un suivi par utilisateur.

Dans les paramètres généraux, vous pouvez ajouter un fournisseur d’authentification. Ceci est très intéressant dans un contexte professionnel pour s’appuyer sur une base de comptes externes pour la connexion à Erugo. Par exemple, les utilisateurs de Microsoft 365 pourraient se connecter à Erugo avec leur compte Microsoft professionnel.

C. Personnalisation de l’apparence

Erugo permet de modifier son apparence pour correspondre à votre identité visuelle, ce qui représente un intérêt en entreprise. Dans les paramètres, il y a une section nommée “Identité visuelle et interface utilisateur” dédiée à cela. Vous pouvez notamment :

Définir une image de fond d’écran (ou même plusieurs et avoir une rotation)

Définir un logo (visible en haut à gauche)

Sélectionner un thème parmi une sélection ou importer votre thème

L’interface d’Erugo peut adopter la charte graphique de votre entreprise grâce au fond d’écran, au logo et même à un thème totalement personnalisé.

VI. Conclusion

Erugo se révèle être une excellente solution pour quiconque souhaite héberger son propre service de transfert de fichiers, en ayant une totale maîtrise des données. C’est une alternative intéressante et flexible à WeTransfer et consorts. Sa facilité d’installation via Docker, ses options de configuration et de personnalisation en font un outil à suivre !

Qu’en pensez-vous ?

Ingénieur système et réseau, cofondateur d’IT-Connect et Microsoft MVP “Cloud and Datacenter Management”. Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.



Source link

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *