--- title: VoucherVault created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, tracking, vouchers, coupons, gift-cards, django, pwa] confidence: high contested: false sources: [https://selfh.st/apps/, https://github.com/l4rm4nd/VoucherVault, https://hub.docker.com/r/l4rm4nd/vouchervault] --- # VoucherVault 🎟️ > Application Django pour stocker, gérer et suivre ses bons d'achat, coupons, cartes de fidélité et cartes cadeaux de manière centralisée. | Métadonnée | Valeur | | :--- | :--- | | **Site web** | https://blog.lrvt.de/vouchervault/ | | **GitHub** | https://github.com/l4rm4nd/VoucherVault | | **License** | GPL-3.0 | | **Langage principal** | Python (Django 5) | | **Étoiles GitHub** | ~491 | | **Dernière MAJ** | 2026-06 (v1.28.2) | | **Catégorie** | [[cat-tracking]] | ## Description VoucherVault est une application **self-hosted** dédiée à la gestion centralisée des **vouchers, coupons, cartes cadeaux et cartes de fidélité** — un usage devenu incontournable à l'ère du numérique où l'on accumule des codes de réduction dans une demi-douzaine de messageries et d'apps. Le projet, écrit en Django 5, se veut volontairement « user-friendly » et **mobile-first** : il est livré en tant que **PWA** (Progressive Web App) installable sur smartphone, supporte le mode hors-ligne avec cache local de 48h, et propose des thèmes clair/sombre. Les fonctionnalités clés incluent : upload de fichiers joints (images, PDF) par item, scan **côté client** des codes-barres et QR codes lors de la création, génération automatique de QR codes pour les codes de rédemption, support des **notifications d'expiration** via [Apprise](https://github.com/caronc/apprise), partage d'items entre utilisateurs, historique de transactions (cartes cadeaux), et **API REST** exposant des statistiques intégrables à Home Assistant. Le multi-utilisateur, l'authentification **OIDC SSO**, le support multilingue (EN/DE/FR/IT) et la compatibilité SQLite3/PostgreSQL complètent le tableau. Pour les particuliers comme pour les familles, VoucherVault remplace avantageusement des apps propriétaires souvent verrouillées derrière un abonnement et dont les données ne vous appartiennent pas. ## Installation ### Via Docker (recommandé) ```yaml services: vouchervault: image: l4rm4nd/vouchervault:1.28 container_name: vouchervault restart: unless-stopped ports: - "8000:8000" environment: - DOMAIN=vouchervault.example.com - SECURE_COOKIES=True - TZ=Europe/Paris - EXPIRY_THRESHOLD_DAYS=30 - EXPIRY_LAST_NOTIFICATION_DAYS=7 volumes: - ./volume-data/database:/app/database depends_on: - redis redis: image: redis:7-alpine container_name: vouchervault-redis restart: unless-stopped volumes: - ./volume-data/redis:/data ``` > ⚠️ Le conteneur tourne sous l'utilisateur `www-data` (UID/GID 33). Corriger les permissions du volume : `sudo chown -R 33:33 ./volume-data`. ### Installation manuelle 1. Cloner le dépôt : `git clone https://github.com/l4rm4nd/VoucherVault.git && cd VoucherVault` 2. Créer un venv Python 3.11+ et installer : `pip install -r requirements.txt` 3. Configurer les variables d'environnement (cf. section suivante) ou éditer `config.dist.ini` 4. Lancer les migrations : `python manage.py migrate` 5. Créer le super-utilisateur : `python manage.py createsuperuser` 6. Démarrer : `python manage.py runserver 0.0.0.0:8000` (derrière Gunicorn + reverse-proxy en prod) ## Configuration - **DOMAIN** (obligatoire) : FQDN ou IP, utilisé pour `ALLOWED_HOSTS` et `CSRF_TRUSTED_ORIGINS` (séparer par virgules si plusieurs). - **SECURE_COOKIES=True** : active le flag `secure` des cookies et HSTS — indispensable derrière un reverse-proxy TLS. - **SECRET_KEY** : auto-généré si non défini, mais doit être fixé pour la persistance des sessions entre redémarrages. - **EXPIRY_THRESHOLD_DAYS=30** / **EXPIRY_LAST_NOTIFICATION_DAYS=7** : fenêtres de rappel d'expiration envoyées via Apprise. - **OIDC_ENABLED=True** + variables `OIDC_RP_*` : active l'authentification unique via un fournisseur externe (Authelia, Authentik, Keycloak…). - **Base de données** : SQLite3 par défaut (zero-config), PostgreSQL via `DATABASE_URL`. - **Compte admin par défaut** : `admin` / mot de passe auto-généré affiché dans les logs du conteneur (`docker compose logs -f vouchervault`). ## Alternatives ### Open source - [[app-leantime]] — Gestion de projet avec time-tracking (pas de vouchers) - Grocy — Gestion d'inventaire domestique (couvre les courses mais pas les coupons) - Firefly III — Suivi budgétaire personnel (orientation finance, pas bons d'achat) ### Propriétaires - Stocard — App leader de portefeuille de cartes de fidélité, propriétaire et publicitaire - Slyce / Coupons.com — Plateformes de coupons digitaux avec tracking comportemental - Apple Wallet / Google Wallet — Stockage natif des cartes mais aucune gestion d'expiration ni d'analytics ## Sécurité - **CSRF / CORS** : Django + `ALLOWED_HOSTS` strict, configurer `CSP_FRAME_ANCESTORS` si embarqué dans une iframe. - **HTTPS obligatoire en production** : `SECURE_COOKIES=True` + reverse-proxy (Caddy, Nginx, Traefik) avec certificat Let's Encrypt. - **Secret Django** : par défaut auto-généré à chaque démarrage, ce qui invalide les sessions au reboot — fixer un `SECRET_KEY` stable. - **Mises à jour** : Conventional Commits + releases fréquentes (≈143 releases), utiliser un tag mineur fixe (`1.28.x`) plutôt que `latest` pour éviter les ruptures. - **Permissions** : le multi-utilisateur permet d'isoler les items par propriétaire, idéal pour un usage familial. ## Ressources - Site / blog de l'auteur : https://blog.lrvt.de/vouchervault/ - Code source : https://github.com/l4rm4nd/VoucherVault - Image Docker Hub : https://hub.docker.com/r/l4rm4nd/vouchervault - Wiki officiel : https://github.com/l4rm4nd/VoucherVault/wiki - Annonce r/selfhosted : https://www.reddit.com/r/selfhosted/comments/1dylr2x/ ## Pages Liées - [[cat-tracking]] - [[recettes-docker-compose]]