Files

45 lines
1.9 KiB
Markdown

# QR Code Generator
Générateur de QR codes entièrement statique, sans backend.
L'encodage et le rendu du QR code se font **intégralement dans le navigateur** : aucun texte, lien ou logo n'est jamais envoyé à un serveur.
## Aperçu
![Aperçu du générateur](docs/screenshot.png)
## Fonctionnalités
- Encodage de texte libre ou d'URL en QR code, côté client, via [qrcode-generator](https://github.com/kazuhikoarase/qrcode-generator)
- Génération de QR codes de connexion Wi-Fi (SSID, mot de passe, sécurité WPA/WPA2/WPA3/WEP/ouvert, réseau masqué) — scannables directement par l'appareil photo du téléphone
- Génération de QR codes de contact (vCard) : nom, téléphone, email, organisation, fonction, site web — importables directement dans le répertoire
- Niveaux de correction d'erreur configurables (L / M / Q / H)
- Couleurs de modules et de fond personnalisables
- Superposition d'un logo au centre du QR code (force automatiquement la correction d'erreur au niveau H pour rester scannable)
- Export du QR code en PNG ou en SVG (vectoriel, redimensionnable sans perte)
- 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>:8091/`.
## Stack technique
- HTML / CSS / JavaScript vanilla, aucun build step
- [qrcode-generator](https://github.com/kazuhikoarase/qrcode-generator) pour l'encodage QR
- Rendu et superposition du logo via l'API Canvas du navigateur
- 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é
Le contenu encodé et les images de logo restent uniquement dans le navigateur (traitement via l'API Canvas / FileReader). Le serveur ne fait que servir des fichiers statiques.
## Licence
Ce projet est distribué sous licence [MIT](LICENSE).