Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
+167
View File
@@ -0,0 +1,167 @@
---
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