6.3 KiB
title: DumbBudget created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, budgeting, typescript, finance, simple, minimaliste, docker] confidence: high contested: false sources: [https://selfh.st/apps/?tag=budgeting, https://github.com/ctf0/dumb-budget, https://dumbbudget.app/]
DumbBudget 🪙
DumbBudget fait exactement ce que son nom suggère : du budgeting volontairement simple et bête (au sens affectueux). Pas d'algos, pas de synchro bancaire, pas de catégories infinies — juste un formulaire pour entrer revenus, dépenses, et voir où on en est. Une app Node.js + SQLite qui tient en quelques fichiers.
| Métadonnée | Valeur |
|---|---|
| Site web | https://dumbbudget.app/ |
| GitHub | https://github.com/ctf0/dumb-budget |
| License | MIT |
| Langage | TypeScript (Node.js / Express) |
| Étoiles | ⭐27 |
| Dernière MAJ | 2026-03-10 |
| Catégorie | cat-budgeting |
Description
DumbBudget est né d'une frustration : les apps de budgeting modernes sont devenues trop complexes — catégories hiérarchiques, tags, règles automatiques, synchro bancaire, prévisions par IA... Pour 80% des gens, il suffit d'un tableur amélioré. DumbBudget incarne cette philosophie : un revenu mensuel, des dépenses, un solde restant, point final.
L'interface propose un dashboard unique avec : revenu total du mois, dépenses totales, solde restant (gros chiffre vert ou rouge), liste des dépenses du mois (recherche/filtre/édition/suppression), historique mois par mois (consultable en lecture seule), et export JSON des données. C'est tout. Pas de catégories obligatoires, pas de graphiques fancy (juste quelques totaux).
Les fonctionnalités clés incluent : multi-comptes (cash, banque, épargne), multi-devises (optionnel), récurrences simples (mensuelles, hebdomadaires), notes libres sur chaque transaction, recherche full-text, totaux mensuels automatiques, zéro tracking, zéro télémétrie, sauvegarde SQLite en un seul fichier copiable.
L'architecture est volontairement minimale : Node.js + Express + TypeScript + SQLite + EJS (templates serveur). Pas de React, pas de build complexe, pas de Redis, pas de worker. Le projet tient en moins de 1000 lignes de code — c'est littéralement ce qui le rend maintenable par une seule personne et auditable en 30 minutes.
DumbBudget est particulièrement adapté aux personnes allergiques à YNAB/Mint/Rocket Money, aux étudiants qui veulent juste suivre leurs 800€/mois, aux couples qui veulent un suivi partagé minimal, et aux adeptes du "small software" (philosophie de Calckey/Moon**). Si vous avez besoin d'un tableur avec une UI sans les limitations d'un tableur, c'est exactement ça.
Installation
Via Docker (recommandé)
# docker-compose.yml
services:
dumbbudget:
image: ghcr.io/ctf0/dumb-budget:latest
container_name: dumbbudget
restart: unless-stopped
ports:
- "3847:3847"
environment:
- NODE_ENV=production
- PORT=3847
- JWT_SECRET=ChangeM3_JwtSecret
- DB_PATH=/data/dumbbudget.db
- TZ=Europe/Paris
volumes:
- dumbbudget-data:/data
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost:3847/"]
interval: 30s
timeout: 10s
retries: 3
volumes:
dumbbudget-data:
Installation manuelle
git clone https://github.com/ctf0/dumb-budget.git
cd dumb-budget
npm install
npm run build
cp .env.example .env # éditer les variables
npm start
# ou en dev : npm run dev
Configuration
Variables d'environnement principales :
PORT: port d'écoute (défaut 3847)JWT_SECRET: secret pour les sessions/JWT (obligatoire en prod)DB_PATH: chemin du fichier SQLite (défaut./data/dumbbudget.db)DEFAULT_CURRENCY: devise par défaut (EUR, USD, GBP...)TIMEZONE: fuseau horaire pour les récurrences
Les récurrences se créent via UI : transaction + fréquence (monthly/weekly) + date de fin. Chaque occurrence apparaît automatiquement dans le mois courant. Pas de comptes utilisateurs multiples : DumbBudget est mono-utilisateur par défaut (le créateur a accès, les autres ont une URL d'invitation read-only en option).
Alternatives
Open Source
- app-expenseowl : encore plus minimaliste (Python/Flask, sans comptes)
- app-wygiwyh : approche cash-flow un peu plus riche (Django)
- app-actual-budget : bien plus puissant (envelope-based, synchro bancaire)
- app-budget-board : dashboard read-only depuis un CSV
- Plain text accounting (ledger, hledger, beancount) : pour les barbus de la compta
Propriétaire
- PocketSmith : budgeting avec projections long terme (freemium)
- Lunch Money : app moderne orientée transactions bancaires
- Monarch Money : budgeting familial avec synchro bancaire
- Toshl : app mobile simple, freemium
- Un simple Google Sheet : alternative honnête si vous n'avez besoin de rien d'autre
Sécurité
- Authentification par JWT (stateless tokens) ou session selon config
- Bcrypt pour le hash des mots de passe
- Helmet.js pour les headers HTTP sécurisés (HSTS, X-Frame-Options, etc.)
- CSRF tokens sur les formulaires
- SQLite en fichier : pas de service à protéger, juste sauvegarder le
.db - HTTPS obligatoire via reverse proxy (Caddy, Traefik, Nginx Proxy Manager)
- Sauvegardes : copier
/data/dumbbudget.dbquotidiennement - Pas de dépendance réseau au runtime : 100% offline-compatible
- Code auditable en < 1h, pas de supply chain à risque (dépendances minimales)
Ressources
- Dépôt GitHub
- Démo en ligne (si disponible)
- Issues / feature requests
- Auteur : ctf0 sur GitHub
Pages Liées
- cat-budgeting — catégorie parente
- recettes-docker-compose — recettes Docker Compose
- app-expenseowl — alternative Python ultra-minimaliste
- app-wygiwyh — autre app minimaliste (Django, cash-flow)
- app-actual-budget — pour qui veut plus de fonctionnalités
- app-budget-board — dashboard read-only complémentaire