Initial vault setup
This commit is contained in:
@@ -0,0 +1,137 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user