Zoraxy : Reverse Proxy + SSL Let's Encrypt en 10 minutes
Déployez Zoraxy pour exposer tous vos services Docker via HTTPS avec Let's Encrypt en 10 minutes. Interface web intuitive, pas de fichiers de config à éditer.
Zoraxy est le reverse proxy moderne et open source que j'utilise pour exposer tous mes services à Internet. En 10 minutes, vous aurez un HTTPS Let's Encrypt automatique pour tous vos services Docker, sans configuration Nginx complexe. Un vrai game changer pour le homelab.
Qu'est-ce qu'un reverse proxy et pourquoi Zoraxy ?
Un reverse proxy est un serveur qui reçoit les requêtes entrantes (port 80/443) et les redirige vers le bon service interne. Au lieu d'exposer chaque service sur un port différent (mon-app:8080, mon-autre-app:3000), vous n'avez qu'une seule entrée HTTPS sécurisée par sous-domaine.
- Un seul port 443 ouvert — tous les services derrière HTTPS
- Certificats SSL Let's Encrypt automatiques et gratuits
- Interface web simple — pas de fichiers de config à éditer
- Support Cloudflare DNS challenge pour les certificats wildcard
- Gestion des règles en temps réel sans redémarrage
- Open source — github.com/tobychui/zoraxy
- Alternative légère à Nginx Proxy Manager ou Traefik

Prérequis
Avant de déployer Zoraxy, assurez-vous d'avoir :
- Docker et Docker Compose installés (voir article 4)
- Un nom de domaine avec accès aux DNS (Cloudflare recommandé)
- Les ports 80 et 443 ouverts dans votre pare-feu/box
- Au moins un sous-domaine pointant vers votre IP publique
- IP publique statique ou service DDNS (DuckDNS, Cloudflare)
Déployer Zoraxy avec Docker
Créez un dossier de travail et le fichier docker-compose.yml pour Zoraxy :
mkdir -p ~/docker/zoraxy && cd ~/docker/zoraxy
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
zoraxy:
image: tobychui/zoraxy:latest
container_name: zoraxy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "8443:8443" # Interface admin (port générique)
volumes:
- ./data:/opt/zoraxy/data
- /etc/localtime:/etc/localtime:ro
environment:
- NOAUTH=false # Authentification activée
cap_add:
- NET_ADMIN
EOF
# Démarrer Zoraxy
docker compose up -d
docker logs -f zoraxy
Attendez quelques secondes que Zoraxy démarre, puis accédez à l'interface admin via : https://votre-ip:8443 (ou le port que vous avez configuré). Lors du premier accès, créez un compte administrateur.
Configuration DNS Cloudflare
Pour que Let's Encrypt puisse émettre des certificats, vos sous-domaines doivent pointer vers votre IP publique. Dans Cloudflare :
# Dans Cloudflare Dashboard > DNS > Records :
# Ajouter un enregistrement A pour chaque sous-domaine :
Type: A
Name: mon-service # ex: vault, kuma, portainer
Content: votre-IP-publique # Votre IP publique
Proxy status: Proxied (orange) — ou DNS only (gris) selon votre setup
TTL: Auto
# Si vous utilisez un DDNS :
# Type: CNAME
# Name: *
# Content: votredomaine.duckdns.org (ou votre DDNS)

Ajouter une règle proxy
Dans l'interface Zoraxy, naviguez vers 'Proxy Rules' > 'Create Proxy Rule' :
- Matching Hostname: mon-service.votredomaine.com
- Target: http://IP-de-votre-VM:8080 (port du service interne)
- Proxy Type: Subdomain (recommandé pour la plupart des services)
- Enable : ON
- Save
# Exemples de règles proxy courantes :
# Service Hostname Target
# Ghost Blog blog.example.com -> localhost:2368
# Vaultwarden vault.example.com -> localhost:8888
# Uptime Kuma status.example.com -> localhost:3000
# Portainer portainer.example.com -> localhost:9000
# Grafana grafana.example.com -> localhost:3001
# Note : utiliser l'IP interne du serveur ou le nom du conteneur Docker
# si Zoraxy est sur le même réseau Docker que les services
Activer HTTPS Let's Encrypt
C'est ici que Zoraxy brille — obtenir un certificat SSL en un clic. Après avoir créé la règle proxy, cliquez sur 'SSL Certificate' pour ce domaine :
- Certificate Provider : Let's Encrypt
- Domain : mon-service.votredomaine.com
- Email : votre-email@example.com (pour les alertes Let's Encrypt)
- Cliquez sur 'Get Certificate'
- Zoraxy gère automatiquement le renouvellement
# Vérifier que le certificat est valide :
curl -I https://mon-service.votredomaine.com
# Attendez 30-60 secondes le temps que Let's Encrypt
# valide le challenge HTTP-01 et émette le certificat.
# En cas d'erreur 'too many certificates' :
# Utilisez le mode staging Let's Encrypt pour les tests.
# Ou attendez 7 jours (limite : 50 cert/domaine/semaine)

Cloudflare comme couche de sécurité supplémentaire
En activant le proxy Cloudflare (icône orange), votre IP réelle est cachée derrière Cloudflare. Cela offre une protection DDoS et une mise en cache automatique. Cependant, pour les challenges Let's Encrypt, vous devrez peut-être utiliser le DNS challenge Cloudflare au lieu du HTTP challenge.
# Si Cloudflare proxy est activé (orange),
# le challenge HTTP-01 peut échouer.
# Solutions :
# 1. Désactiver temporairement le proxy (gris) pendant l'émission du certificat
# 2. Utiliser le DNS challenge avec l'API Cloudflare
# Configuration DNS challenge dans Zoraxy :
# SSL > Certificate > Provider: Let's Encrypt DNS
# Provider: Cloudflare
# API Token: votre-token-cloudflare-zone-dns-edit
# (Créer dans Cloudflare > My Profile > API Tokens)
Sécurisation de l'interface admin
L'interface admin de Zoraxy ne doit pas être exposée publiquement. Quelques mesures de sécurité recommandées :
- Ne pas créer de règle proxy pour l'interface admin Zoraxy
- Accéder uniquement via VPN ou réseau local
- Changer le port admin par défaut
- Activer l'authentification forte (mot de passe solide)
- Restricter l'accès par IP dans Zoraxy si possible
Maintenance et mise à jour
# Mettre à jour Zoraxy
cd ~/docker/zoraxy
docker compose pull
docker compose up -d
# Vérifier les logs
docker logs --tail 50 zoraxy
# Sauvegarder la configuration
tar czf zoraxy-backup-$(date +%Y%m%d).tar.gz ./data/
# Vérifier les certificats SSL (expiration)
# Dans l'interface : SSL > Certificate List
Conclusion et prochaines étapes
Zoraxy est maintenant opérationnel. Tous vos services Docker sont désormais accessibles via HTTPS avec un certificat Let's Encrypt valide. Dans le prochain article, nous déployons Vaultwarden — votre gestionnaire de mots de passe self-hosted sécurisé par ce même reverse proxy.
Téléchargez ce guide en PDF pour le consulter hors ligne.
⬇ Télécharger le guide (PDF)🚀 Aller plus loin avec BOTUM
Ce guide couvre les bases. En production, chaque environnement a ses spécificités. Les équipes BOTUM accompagnent les organisations dans le déploiement, la configuration avancée et la sécurisation de leur infrastructure. Si vous avez un projet, parlons-en.
Discuter de votre projet →