--- title: wg-easy created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, vpn, wireguard, tunneling, web-ui, typescript, beginner] confidence: high contested: false sources: [https://selfh.st/apps/?tag=VPN, https://github.com/wg-easy/wg-easy] --- # 🔐 wg-easy > **Le moyen le plus simple d'exposer un serveur WireGuard avec une interface web** — configure, crĂ©e des clients et partage des QR codes en 5 minutes chrono. ## 📋 Informations GĂ©nĂ©rales | Champ | Valeur | | :--- | :--- | | **Site web** | [wg-easy.com](https://wg-easy.com/) (le projet vit surtout sur GitHub) | | **GitHub** | [wg-easy/wg-easy](https://github.com/wg-easy/wg-easy) | | **License** | MIT | | **Langage** | TypeScript (Node.js + Vue.js) | | **Étoiles GitHub** | 25 944 ⭐ | | **DerniĂšre MAJ** | 2026-06-06 | | **CatĂ©gorie** | [[cat-vpn|VPN & RĂ©seau privĂ©]] | ## 📝 Description **wg-easy** est un **wrapper convivial autour de WireGuard** qui ajoute une **interface web moderne** pour gĂ©rer votre serveur VPN. Au lieu d'Ă©diter Ă  la main `wg0.conf` et de gĂ©nĂ©rer des clĂ©s avec `wg genkey`, vous obtenez un dashboard propre permettant d'ajouter/supprimer des clients, de tĂ©lĂ©charger des `.conf` ou de scanner un **QR code** depuis l'app mobile WireGuard. C'est le "Nextcloud du VPN" : simple, focalisĂ©, parfait pour 1 serveur VPN partagĂ© entre 5 et 50 utilisateurs. Le projet, anciennement connu sous le nom "wg-easy" de `angristan` puis repris par l'organisation `wg-easy`, a explosĂ© en popularitĂ© pendant l'explosion du tĂ©lĂ©travail post-2020. Sa force est de ne **rien ajouter au protocole WireGuard** — c'est juste un frontal de gestion. Vous gardez 100% de la performance, de la sĂ©curitĂ© et de la philosophie "small surface area" de WireGuard. - ✅ **Installation en 1 commande Docker** (image `ghcr.io/wg-easy/wg-easy`) - ✅ **UI web multilingue** (EN/FR/DE/ES
) avec thĂšmes sombre/clair - ✅ **QR codes dynamiques** pour app mobile WireGuard (iOS/Android) - ✅ **Export de configuration** : `.conf`, QR code, envoi par email optionnel - ✅ **Gestion de la bande passante** par client (monitoring) - ✅ **IPv4 + IPv6** supportĂ©s - ✅ **Mises Ă  jour automatiques du kernel** : utilise le module WireGuard natif du noyau - ✅ **MĂ©triques simples** : dernier handshake, octets transfĂ©rĂ©s par client - ✅ **2FA** (depuis la v14) via TOTP pour l'accĂšs au dashboard - ✅ **Backup/restore** simple (un volume Docker) **Public cible** : homelabbers qui veulent un **VPN site-Ă -client** (road warrior) sans prise de tĂȘte, petites structures (5-50 employĂ©s), associations. **IdĂ©al pour 1 serveur VPN unique**. Pour des besoins multi-rĂ©gions ou un mesh dynamique entre pairs, prĂ©fĂ©rer [[app-headscale]] ou [[app-tailscale]]. **Vs OpenVPN + Pihole VPN** : WireGuard est 2-4× plus rapide, plus simple Ă  configurer et plus Ă©conome en Ă©nergie. OpenVPN reste utile uniquement pour des contraintes corporate ou clients exotiques. ## 🚀 Installation ### Option 1 : Docker Compose (recommandĂ©, ultra-simple) ```yaml # docker-compose.yml version: '3.8' services: wg-easy: image: ghcr.io/wg-easy/wg-easy:latest container_name: wg-easy restart: unless-stopped cap_add: - NET_ADMIN - SYS_MODULE sysctls: - net.ipv4.ip_forward=1 - net.ipv6.conf.all.forwarding=1 environment: - LANG=fr - WG_HOST=wg.example.com # IP publique ou DNS - PASSWORD=ChangeMeStrongP@ss # Mot de passe UI web - WG_DEFAULT_DNS=1.1.1.1,9.9.9.9 - WG_ALLOWED_IPS=10.8.0.0/24,192.168.0.0/24 # VPN + LAN - WG_PERSISTENT_KEEPALIVE=25 volumes: - ./config:/etc/wireguard ports: - "51820:51820/udp" # WireGuard - "51821:51821/tcp" # UI Web (peut ĂȘtre proxifiĂ© par Traefik) labels: - "traefik.enable=true" - "traefik.http.routers.wg-easy.rule=Host(`wg.example.com`)" - "traefik.http.routers.wg-easy.entrypoints=websecure" - "traefik.http.routers.wg-easy.tls.certresolver=letsencrypt" - "traefik.http.routers.wg-easy.service=wg-easy-svc" - "traefik.http.services.wg-easy-svc.loadbalancer.server.port=51821" ``` > ⚠ Le port `51820/UDP` doit ĂȘtre **accessible depuis Internet** (NAT/PAT du routeur). Si vous ĂȘtes derriĂšre un NAT (CGN, 4G), utiliser un VPS relais ou [[app-tailscale]] Ă  la place. ### Option 2 : Bare-metal (Debian/Ubuntu) ```bash sudo apt update && sudo apt install -y wireguard qrencode # Suivre ensuite https://github.com/wg-easy/wg-easy#manual-installation # GĂ©nĂ©rer clĂ©s : wg genkey | tee privatekey | wg pubkey > publickey # Configurer /etc/wireguard/wg0.conf sudo systemctl enable --now wg-quick@wg0 ``` ## ⚙ Configuration Initiale 1. **Rediriger le port 51820/UDP** sur votre box/routeur vers le serveur wg-easy 2. **AccĂ©der Ă  l'UI web** : `https://wg.example.com` (ou `http://IP:51821` la premiĂšre fois) 3. **Changer le mot de passe admin** (variable `PASSWORD` dans docker-compose) 4. **Activer le 2FA** : Settings → TOTP (compatible avec [[app-2fauth]]) 5. **CrĂ©er un client** : bouton "New Client", choisir un nom, **scanner le QR code** avec l'app mobile WireGuard 6. **Tester** : depuis le client, vĂ©rifier l'IP publique (`curl ifconfig.me`) et l'accĂšs au LAN (`ping 192.168.1.1`) ## 🔄 Alternatives ### Open Source - [[app-wireguard]] — Le noyau dur, sans UI - [[app-wgdashboard]] — Alternative Python, multi-instance - [[app-openvpn]] + OpenVPN Access Server (libre mais features payantes) - [[app-tailscale]] / [[app-headscale]] — Mesh dynamique, plus Ă©voluĂ© - **PiVPN** — Script bash pour installer WireGuard sur Raspberry Pi - **Algo** — VPN WireGuard auto-hĂ©bergĂ© pour voyage (by Trail of Bits) ### PropriĂ©taires - **NordVPN** (client lourd, no-log claimĂ©, juridiction Panama) - **ExpressVPN** (propriĂ©taire Lightway protocol, audits PwC/Cure53) - **Mullvad VPN** (5€/mois, no account, no email, accepte cash/crypto) - **ProtonVPN** (suisse, intĂ©grĂ© Ă  Proton Mail/Drive, plan gratuit limitĂ©) - **CyberGhost** (grand public, no-logs claimĂ©) - **Cisco AnyConnect** (entreprise, propriĂ©taire) ### Comparaison wg-easy vs alternatives | CritĂšre | wg-easy | OpenVPN | Tailscale | NordVPN | | :--- | :--- | :--- | :--- | :--- | | Self-hosted | ✅ | ✅ | ❌ (Headscale oui) | ❌ | | Prix | Gratuit | Gratuit (AS payante) | Freemium | ~3-12€/mois | | UI web | ✅ (incluse) | ❌ (AS payante) | ✅ | ✅ | | Performance | TrĂšs rapide | ModĂ©rĂ©e | TrĂšs rapide | Rapide | | Configuration | 5 min | 30 min | 2 min | 0 min | | Logs | Aucun (toi) | Aucun (toi) | MĂ©tadonnĂ©es (Tailscale) | Claim "no-log" | | Juridiction | Toi | Toi | USA | Panama | | IdĂ©al pour | 1 serveur, 5-50 users | Legacy, compatibilitĂ© | Mesh multi-machines | Grand public | **Verdict** : wg-easy est **le standard de fait** pour un VPN WireGuard simple et auto-hĂ©bergĂ©. Si vous avez besoin d'un mesh dynamique entre pairs dispersĂ©s, migrez vers Tailscale/Headscale. ## 🔐 SĂ©curitĂ© - ✅ **WireGuard moderne** : Curve25519 (ECDH), ChaCha20-Poly1305 (AEAD), BLAKE2s (hash) — cryptographie de pointe, code auditĂ© - ⚠ **VisibilitĂ© IP publique** : WireGuard fait du routage IP ; le serveur voit les IPs publiques de chaque client. Pour un anonymat fort, combiner avec Tor (SOCKS5 via wg) - ✅ **ClĂ©s privĂ©es** : gĂ©nĂ©rĂ©es localement, **JAMAIS exportĂ©es** du serveur. Sauvegarder le volume `config` chiffrĂ© ([[app-vaultwarden]] pour les secrets, **VeraCrypt** ou **age** pour le dossier de backup) - ✅ **2FA obligatoire** sur l'UI web d'admin (TOTP, compatible [[app-2fauth]]) - ✅ **Logs d'audit** : activer les logs kernel WireGuard (`dmesg -w | grep wg`), exporter vers [[app-loki]] ; surveiller les handshakes Ă©chouĂ©s - ✅ **Posture zero-trust** : ne pas donner accĂšs au dashboard Ă  n'importe qui, crĂ©er un user dĂ©diĂ© par client (ou par device) - ⚠ **Pas de MFA par client** : wg-easy gĂšre l'admin, pas l'authentification des clients (c'est juste "qui a la clĂ© privĂ©e, passe"). Pour du MFA par user, prĂ©fĂ©rer [[app-defguard]] ou [[app-authentik]] + OpenVPN ## 📚 Ressources - [GitHub wg-easy/wg-easy](https://github.com/wg-easy/wg-easy) - [Documentation officielle](https://github.com/wg-easy/wg-easy/blob/master/Advanced%20usage.md) - [WireGuard.com](https://www.wireguard.com/) — Site du protocole - [WireGuard quickstart](https://www.wireguard.com/quickstart/) ## Pages LiĂ©es - [[cat-vpn]] — CatĂ©gorie VPN & RĂ©seau privĂ© - [[app-wireguard]] — Le protocole sous-jacent - [[app-tailscale]] — Alternative mesh - [[app-openvpn]] — Le "vieux" VPN - [[app-traefik]] — Reverse proxy / HTTPS - [[securisation-home-lab]] — Bonnes pratiques globales - [[glossaire-homelab]] — DĂ©finitions rĂ©seau - [[comparatif-vpn-mesh]] — Comparatif global