6.0 KiB
title: ExpenseOwl created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, budgeting, python, flask, minimaliste, depenses, simple] confidence: high contested: false sources: [https://selfh.st/apps/?tag=budgeting, https://github.com/nicholasgasior/expenseowl, https://expenseowl.com/]
ExpenseOwl 🦉
Suivi de dépenses ultra-minimaliste écrit en Python/Flask. Pour qui veut juste noter ses dépenses sans se prendre la tête avec des catégories complexes, des budgets ou de l'import bancaire.
| Métadonnée | Valeur |
|---|---|
| Site web | https://expenseowl.com/ |
| GitHub | https://github.com/nicholasgasior/expenseowl |
| License | MIT |
| Langage | Python (Flask) |
| Étoiles | ⭐133 |
| Dernière MAJ | 2026-05-10 |
| Catégorie | cat-budgeting |
Description
ExpenseOwl est une application web volontairement minimaliste de suivi de dépenses personnelles. Son auteur assume : pas d'import bancaire, pas de catégorisation avancée, pas de budgets, pas d'API riche. Juste créer une dépense, la visualiser, la supprimer. Parfait pour qui veut commencer à suivre ses dépenses sans la complexité d'un Firefly III.
Les fonctionnalités essentielles : dépenses avec date, montant, description courte, catégories simples (alimentation, logement, transport, loisirs, santé, etc. — personnalisables), revenus (séparés des dépenses), tableau de bord avec totaux par mois, graphique simple (revenus vs dépenses par mois), filtres par période/catégorie, multi-utilisateurs optionnel (admin peut créer des comptes invités). Et c'est tout. L'interface est claire, sans fioritures, et l'ajout d'une dépense prend littéralement 5 secondes.
La stack technique est volontairement légère : Flask (microframework Python), SQLite par défaut (parfait pour un usage mono-utilisateur), templates Jinja2 rendus côté serveur, Chart.js pour les graphiques. Pas de SPA, pas de build, pas de npm. L'image Docker fait moins de 100 Mo et l'app démarre en 2 secondes. Idéal pour un Raspberry Pi ou un serveur modeste.
ExpenseOwl est l'anti-Firefly III : là où Firefly vise l'exhaustivité fonctionnelle, ExpenseOwl vise la simplicité radicale. Pour 80% des gens qui veulent juste savoir "combien j'ai dépensé ce mois-ci", c'est largement suffisant.
Installation
Via Docker (recommandé)
# docker-compose.yml
services:
expenseowl:
image: ghcr.io/nicholasgasior/expenseowl:latest
container_name: expenseowl
restart: unless-stopped
ports:
- "5000:5000"
environment:
- SECRET_KEY=Change...et
- DATABASE_URL=sqlite:////data/expenses.db
- ALLOW_REGISTRATION=false
volumes:
- expenseowl-data:/data
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost:5000/"]
interval: 30s
timeout: 10s
retries: 3
volumes:
expenseowl-data:
⚠️ Vérifier le tag exact sur le GHCR.
Installation manuelle (Python)
- Pré-requis : Python 3.10+, pip, SQLite (inclus dans Python).
git clone https://github.com/nicholasgasior/expenseowl.git && cd expenseowlpip install -r requirements.txt- Configurer variables d'environnement (
SECRET_KEY,DATABASE_URL). - Initialiser la DB :
flask db upgrade(oupython app.py initselon la version). python app.py(dev) ou via Gunicorn/uWSGI (prod).- Reverse proxy Nginx/Caddy en front.
Configuration
- Premier lancement : créer le compte admin via l'UI.
- ALLOW_REGISTRATION=false : recommandé en production (créer manuellement les comptes).
- Catégories : par défaut une liste de base, personnalisable depuis l'UI.
- Devise : configurée au niveau global, pas de multi-devise native.
- PWA : ExpenseOwl peut s'installer comme Progressive Web App sur mobile (ajout à l'écran d'accueil).
- HTTPS : obligatoire via reverse proxy.
- Backup : copier le fichier
expenses.dbrégulièrement (cron + rclone).
Alternatives
Open Source
- app-spliit — partage entre amis (multi-utilisateurs natif)
- app-actual-budget — budgeting complet, plus puissant
- app-firefly-iii — référence, mais complexe
- app-ocular — autre option TypeScript minimaliste
- Wallet / Paisa / MyExpenses — alternatives Android natives
- GnuCash — comptabilité double-partie, plus puissant
- Skrooge / KMyMoney — gestion budget KDE/GNOME
Propriétaires
- Wallet by BudgetBakers — app mobile tchèque
- Money Manager / Money Lover — apps mobiles grand public
- Spendee — freemium avec agrégation bancaire
- PocketGuard — mobile-first US
Sécurité
- HTTPS obligatoire via reverse proxy (Traefik/Caddy).
- SECRET_KEY : token Flask pour les sessions — générer aléatoirement (32+ caractères), ne jamais commit dans Git.
- ALLOW_REGISTRATION=false en prod : créer les comptes via admin uniquement.
- SQLite : sécuriser les permissions (chmod 600) sur le fichier DB et le volume.
- Backups 3-2-1 : copier régulièrement le fichier
expenses.dbvers stockage chiffré. - Updates : suivre les releases GitHub, le projet est actif mais les releases sont irrégulières.
- 2FA : non natif, compter sur le reverse proxy (Authelia/Authentik) pour durcir l'accès admin.
- Logs : Flask logs standards, à monitorer via Grafana/Loki ou équivalent.
Ressources
- Site officiel : https://expenseowl.com/
- GitHub : https://github.com/nicholasgasior/expenseowl
- Démo : https://expenseowl.com/
- selfh.st : https://selfh.st/apps/?tag=budgeting
Pages Liées
- cat-budgeting — catégorie parente
- app-spliit — partage amis (complémentaire)
- app-actual-budget — upgrade naturel si besoin de plus
- app-ocular — autre option minimaliste
- recettes-docker-compose — templates de déploiement
- securisation-home-lab — bonnes pratiques