--- title: WYGIWYH created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, budgeting, python, django, finance, recurrente, minimaliste] confidence: high contested: false sources: [https://selfh.st/apps/?tag=budgeting, https://github.com/eitchtee/WYGIWYH, https://wygiwyh.org/] --- # WYGIWYH 💰 > **What You Get Is What You Have** — application Django minimaliste de **gestion de finances personnelles** centrée sur le principe de **cash-flow** : on enregistre ce qu'on a, ce qu'on doit, et ce qu'on attend. Pas de catégories compliquées, pas de synchronisation bancaire, juste la réalité du portefeuille. | Métadonnée | Valeur | | :--- | :--- | | **Site web** | https://wygiwyh.org/ | | **GitHub** | https://github.com/eitchtee/WYGIWYH | | **License** | AGPL-3.0 | | **Langage** | Python (Django) | | **Étoiles** | ⭐39 | | **Dernière MAJ** | 2026-04-20 | | **Catégorie** | [[cat-budgeting]] | ## Description WYGIWYH (acronyme de *What You Get Is What You Have*) est une application **Django** de gestion de finances personnelles qui se distingue par son approche radicalement simple : **on enregistre les revenus, les dépenses récurrentes, les transactions effectuées, et l'app projette automatiquement le solde futur**. C'est l'anti-bullshit du budgeting moderne. La philosophie est la suivante : plutôt que de catégoriser à outrance ou d'importer des relevés bancaires, on saisit **ce qu'on a réellement** (comptes, espèces), **ce qu'on attend** (revenus à venir), **ce qu'on doit** (dépenses planifiées), et l'application calcule un **cash-flow prévisionnel** mois par mois. L'utilisateur voit immédiatement s'il sera **à flot, en positif, ou en négatif** dans les semaines à venir. Les fonctionnalités clés incluent : **comptes multiples** (banque, cash, épargne, crypto), **transactions récurrentes** (mensuelles, hebdomadaires, annuelles avec support des répétitions complexes), **calendrier financier** (vue mois/semaine), **catégories** simples, **tags** libres, **multi-devises**, **dashboard** avec graphiques de cash-flow, **import/export CSV**, **API REST** (Django REST Framework), **mode multi-utilisateurs** optionnel. L'**architecture** est **Django + PostgreSQL** (ou SQLite pour usage perso), avec **HTMX + Alpine.js** côté front pour rester léger (pas de SPA React). L'UI est volontairement austère — l'accent est mis sur la **saisie rapide** et la **lisibilité** des chiffres. L'interface est en anglais principalement, mais le code accepte n'importe quelle devise. WYGIWYH est particulièrement adapté aux **indépendants/TPE** qui veulent voir leur cash-flow futur, aux **familles** qui veulent centraliser leurs finances partagées, et aux **minimalistes** qui fuient les apps de budgeting trop complexes. C'est aussi un bon choix pour qui veut **apprendre Django** (code propre, structuré, bien commenté). ## Installation ### Via Docker (recommandé) ```yaml # docker-compose.yml services: wygiwyh: image: ghcr.io/eitchtee/wygiwyh:latest container_name: wygiwyh restart: unless-stopped ports: - "8000:8000" environment: - DJANGO_SECRET_KEY=ChangeM3_DjangoSecretKey - DJANGO_DEBUG=False - DJANGO_ALLOWED_HOSTS=wygiwyh.example.com - DATABASE_URL=postgresql://wygiwyh:ChangeM3@db:5432/wygiwyh - TZ=Europe/Paris volumes: - wygiwyh-data:/app/data depends_on: - db db: image: postgres:16-alpine container_name: wygiwyh-db restart: unless-stopped environment: - POSTGRES_USER=wygiwyh - POSTGRES_PASSWORD=ChangeM3 - POSTGRES_DB=wygiwyh volumes: - wygiwyh-db:/var/lib/postgresql/data volumes: wygiwyh-data: wygiwyh-db: ``` ### Installation manuelle ```bash git clone https://github.com/eitchtee/WYGIWYH.git cd WYGIWYH python3 -m venv venv source venv/bin/activate pip install -r requirements.txt cp .env.example .env # éditer les variables python manage.py migrate python manage.py createsuperuser python manage.py runserver 0.0.0.0:8000 ``` ## Configuration Les principaux paramètres se configurent via variables d'environnement ou `settings.py` : - `DJANGO_SECRET_KEY` : clé secrète Django (obligatoire, longue chaîne aléatoire) - `DATABASE_URL` : URL PostgreSQL (ou SQLite par défaut) - `CURRENCIES` : liste des devises activées (par défaut toutes) - `TIME_ZONE` : fuseau horaire (impacte les récurrences) - `LANGUAGE_CODE` : langue de l'interface (en par défaut, fr partiel) Les **récurrences** se gèrent dans l'admin Django ou via UI : choix de la fréquence (daily/weekly/monthly/yearly), date de fin, et pattern personnalisé. Les **catégories** et **tags** sont créés à la volée par l'utilisateur. ## Alternatives ### Open Source - [[app-actual-budget]] : budgeting envelope-based plus complet mais plus complexe - [[app-myfin]] : alternative Python/Django plus orientée enveloppe budgétaire - [[app-expenseowl]] : encore plus minimaliste (Python/Flask) - Firefly III : autre référence budgeting PHP, plus riche fonctionnellement - [[app-monetr]] : équivalent en Go, plus moderne UI ### Propriétaire - **YNAB** (You Need A Budget) : méthode envelope-based propriétaire, très populaire - **Mint** (désormais Credit Karma) : budgeting US avec synchro bancaire - **PocketGuard** : app mobile de budgeting - **Money Manager** (ex-Revolut) : app bancaire intégrée ## Sécurité - Authentification Django standard (sessions + mots de passe hashés PBKDF2) - **CSRF protection** active sur tous les formulaires - **SQL injection** : Django ORM protège nativement - **XSS** : échappement auto Django - **2FA** : à ajouter via `django-otp` si besoin - **HTTPS obligatoire** via reverse proxy (Traefik, Caddy, Nginx Proxy Manager) - **Sauvegardes** PostgreSQL régulières (`pg_dump` ou Barman) - Pas de tracking, pas de télémétrie, **self-hosted = données chez soi** ## Ressources - [Site officiel WYGIWYH](https://wygiwyh.org/) - [Dépôt GitHub](https://github.com/eitchtee/WYGIWYH) - [Documentation](https://github.com/eitchtee/WYGIWYH/wiki) - [Démo en ligne](https://demo.wygiwyh.org/) (credentials sur la page GitHub) - Suivi de bugs via [GitHub Issues](https://github.com/eitchtee/WYGIWYH/issues) ## Pages Liées - [[cat-budgeting]] — catégorie parente - [[recettes-docker-compose]] — recettes Docker Compose - [[app-actual-budget]] — alternative envelope-based - [[app-myfin]] — autre app Python/Django de budgeting - [[app-expenseowl]] — alternative ultra-minimaliste - [[app-monetr]] — équivalent moderne en Go