Files
2026-06-09 18:40:21 +02:00

6.5 KiB


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é)

# 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

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

Pages Liées