148 lines
6.5 KiB
Markdown
148 lines
6.5 KiB
Markdown
---
|
|
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
|