6.0 KiB
title, created, updated, type, tags, confidence, contested, sources
| title | created | updated | type | tags | confidence | contested | sources | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| VoucherVault | 2026-06-07 | 2026-06-07 | app |
|
high | false |
|
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, 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é)
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
- Cloner le dépôt :
git clone https://github.com/l4rm4nd/VoucherVault.git && cd VoucherVault - Créer un venv Python 3.11+ et installer :
pip install -r requirements.txt - Configurer les variables d'environnement (cf. section suivante) ou éditer
config.dist.ini - Lancer les migrations :
python manage.py migrate - Créer le super-utilisateur :
python manage.py createsuperuser - 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_HOSTSetCSRF_TRUSTED_ORIGINS(séparer par virgules si plusieurs). - SECURE_COOKIES=True : active le flag
securedes 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_HOSTSstrict, configurerCSP_FRAME_ANCESTORSsi 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_KEYstable. - Mises à jour : Conventional Commits + releases fréquentes (≈143 releases), utiliser un tag mineur fixe (
1.28.x) plutôt quelatestpour é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/