138 lines
6.3 KiB
Markdown
138 lines
6.3 KiB
Markdown
---
|
|
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é)
|
|
|
|
```yaml
|
|
# 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
|
|
|
|
```bash
|
|
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.db` quotidiennement
|
|
- **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](https://github.com/ctf0/dumb-budget)
|
|
- [Démo en ligne](https://demo.dumbbudget.app/) (si disponible)
|
|
- [Issues / feature requests](https://github.com/ctf0/dumb-budget/issues)
|
|
- Auteur : [ctf0 sur GitHub](https://github.com/ctf0)
|
|
|
|
## 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
|