Files
wireguard-config-generator/README.md
T
2026-08-27 15:13:29 +02:00

44 lines
1.8 KiB
Markdown

# WireGuard Config Generator
Générateur de configurations WireGuard entièrement statique, sans backend.
La génération des paires de clés (X25519), des clés pré-partagées et des QR codes se fait **intégralement dans le navigateur** : aucune donnée (clé privée, clé publique, configuration) n'est jamais envoyée à un serveur.
## Aperçu
![Aperçu du générateur](docs/screenshot.png)
## Fonctionnalités
- Génération de paires de clés WireGuard (X25519) côté client via [TweetNaCl](https://github.com/dchest/tweetnacl-js)
- Génération optionnelle d'une clé pré-partagée (PresharedKey) par pair
- Attribution automatique des adresses IP à partir d'un réseau CIDR
- Support multi-clients : ajout/suppression dynamique de pairs
- Génération de la configuration serveur (`wg0.conf`) et d'un fichier `.conf` par client
- QR code par client pour import direct dans l'application mobile WireGuard
- Aucune dépendance réseau au runtime (CSP `connect-src 'none'`)
## Déploiement
```bash
docker compose up -d --build
```
L'application est alors disponible sur `http://<hôte>:8090/`.
## Stack technique
- HTML / CSS / JavaScript vanilla, aucun build step
- [TweetNaCl.js](https://github.com/dchest/tweetnacl-js) pour la cryptographie X25519
- [qrcode-generator](https://github.com/kazuhikoarase/qrcode-generator) pour les QR codes
- Servi par `nginx-unprivileged` (image non-root)
- Conteneur durci : `read_only`, `cap_drop: ALL`, `no-new-privileges`, en-têtes de sécurité (CSP, X-Frame-Options, etc.)
## Sécurité
Toutes les clés privées et publiques sont générées localement dans le navigateur et ne transitent jamais sur le réseau. Le serveur ne fait que servir des fichiers statiques.
## Licence
Ce projet est distribué sous licence [MIT](LICENSE).