Configuration du proxy inverse
Un proxy inverse se place devant Erugo et gère le chiffrement SSL/TLS, vous permettant d'accéder à votre instance de manière sécurisée via HTTPS avec un domaine personnalisé.
Un proxy inverse fournit le chiffrement HTTPS, le support de domaines personnalisés, et peut gérer plusieurs services sur le même serveur. C'est essentiel pour tout déploiement public.
Avant de commencer
Vous aurez besoin de :
- Un nom de domaine — Pointé vers l'adresse IP de votre serveur
- Erugo en cours d'exécution — En suivant le guide de démarrage rapide
- Ports 80 et 443 disponibles — Pour le trafic HTTP et HTTPS
Option 1 : Nginx Proxy Manager
Nginx Proxy Manager (NPM) fournit une interface web pour gérer les proxys inverses avec génération automatique de certificats SSL. C'est l'option la plus simple pour la plupart des utilisateurs.
Installer Nginx Proxy Manager
Créez un nouveau répertoire et un fichier docker-compose pour NPM :
mkdir nginx-proxy-manager && cd nginx-proxy-manager services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
networks:
- nginx_internal_network
networks:
nginx_internal_network:
name: nginx_internal_network
driver: bridge Démarrez Nginx Proxy Manager :
docker compose up -d Accéder au panneau d'administration NPM
Ouvrez votre navigateur et allez à http://VOTRE_IP_SERVEUR:81
Identifiants de connexion par défaut :
- E-mail :
[email protected] - Mot de passe :
changeme
Vous serez invité à les changer à la première connexion. Utilisez un mot de passe fort.
Mettre à jour la configuration Erugo
Modifiez votre docker-compose.yml Erugo pour vous connecter au réseau NPM et supprimer le mappage de port :
services:
app:
image: wardy784/erugo:latest
restart: unless-stopped
container_name: erugo
volumes:
- ./erugo-storage:/var/www/html/storage
networks:
- nginx_internal_network
networks:
nginx_internal_network:
external: true Redémarrez Erugo avec la nouvelle configuration :
docker compose down && docker compose up -d Ajouter un hôte proxy
Dans le panneau d'administration NPM :
- Cliquez sur Hosts → Proxy Hosts
- Cliquez sur Add Proxy Host
- Configurez l'onglet Details :
| Paramètre | Valeur |
|---|---|
Domain Names | Votre domaine (ex : fichiers.exemple.com) |
Scheme | http |
Forward Hostname / IP | erugo |
Forward Port | 80 |
Websockets Support | Activé |
Block Common Exploits | Activé |
Configurer SSL
- Cliquez sur l'onglet SSL
- Sélectionnez Request a new SSL Certificate
- Activez Force SSL
- Activez HTTP/2 Support
- Entrez votre e-mail pour les notifications Let's Encrypt
- Acceptez les conditions d'utilisation
- Cliquez sur Save
Votre instance Erugo est maintenant accessible à https://fichiers.exemple.com (votre domaine).
Les certificats SSL se renouvelleront automatiquement.
Option 2 : Caddy
Caddy est un serveur web moderne avec HTTPS automatique. Il est plus simple à configurer que Nginx mais n'a pas d'interface web.
fichiers.exemple.com {
reverse_proxy erugo:80
} services:
caddy:
image: caddy:latest
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./caddy_data:/data
- ./caddy_config:/config
networks:
- erugo_network
networks:
erugo_network:
external: true Caddy obtient et renouvelle automatiquement les certificats SSL de Let's Encrypt.
Option 3 : Traefik
Traefik est un proxy inverse puissant conçu pour les environnements conteneurisés. Il découvre automatiquement les services et configure le routage.
services:
traefik:
image: traefik:v3.0
restart: unless-stopped
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
- "[email protected]"
- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./letsencrypt:/letsencrypt
networks:
- erugo_network
networks:
erugo_network:
external: true Ajoutez des labels à votre service Erugo pour activer le routage Traefik :
services:
app:
image: wardy784/erugo:latest
labels:
- "traefik.enable=true"
- "traefik.http.routers.erugo.rule=Host(`fichiers.exemple.com`)"
- "traefik.http.routers.erugo.entrypoints=websecure"
- "traefik.http.routers.erugo.tls.certresolver=letsencrypt"
networks:
- erugo_network Mettre à jour les paramètres Erugo
Après avoir configuré votre proxy inverse, mettez à jour l'URL de l'application dans les paramètres d'Erugo :
- Connectez-vous à Erugo en tant qu'administrateur
- Allez dans Paramètres → Général
- Définissez URL de l'application sur votre domaine (ex :
https://fichiers.exemple.com) - Enregistrez les modifications
L'URL de l'application est utilisée pour générer les liens de partage dans les e-mails. Assurez-vous qu'elle est correctement définie, sinon les destinataires ne pourront pas accéder aux fichiers partagés.