Files
wiki/Catalogue-Self-Hosted/apps/app-vouchervault.md
T
2026-06-09 18:40:21 +02:00

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
catalogue
tracking
vouchers
coupons
gift-cards
django
pwa
high false
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, 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

  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

Pages Liées