108 lines
6.0 KiB
Markdown
108 lines
6.0 KiB
Markdown
---
|
|
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]]
|