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

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.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

Pages Liées