40 lines
1.7 KiB
Markdown
40 lines
1.7 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
|
|
|
|

|
|
|
|
## 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.
|