Initial vault setup
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
---
|
||||
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]]
|
||||
Reference in New Issue
Block a user