132 lines
6.4 KiB
Markdown
132 lines
6.4 KiB
Markdown
---
|
|
title: OpenBudgeteer
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, budgeting, dotnet, csharp, wpf, budget, personnel]
|
|
confidence: medium
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=budgeting, https://github.com/TheAxelander/OpenBudgeteer, https://openbudgeteer.com/]
|
|
---
|
|
|
|
# OpenBudgeteer 📊
|
|
|
|
> Application de **budgeting personnel** écrite en **.NET (C#)** avec une interface web moderne (Blazor). Approche enveloppe (envelope budgeting) avec report automatique des soldes.
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | https://openbudgeteer.com/ |
|
|
| **GitHub** | https://github.com/TheAxelander/OpenBudgeteer |
|
|
| **License** | MIT |
|
|
| **Langage** | C# (.NET 8, Blazor) |
|
|
| **Étoiles** | ⭐66 |
|
|
| **Dernière MAJ** | 2026-03-18 |
|
|
| **Catégorie** | [[cat-budgeting]] |
|
|
|
|
## Description
|
|
|
|
OpenBudgeteer est une application de **budgeting personnel** basée sur la **méthode de l'enveloppe** (envelope budgeting), écrite en **C#/.NET 8** avec **Blazor Server** pour l'interface web (et historiquement une version **WPF** desktop Windows). C'est l'un des rares projets de budgeting en .NET — une stack entreprise solide, performante, avec un excellent typage.
|
|
|
|
Les fonctionnalités principales : **comptes** multiples (chèque, épargne, cartes, crédit), **transactions** (revenus/dépenses/transferts), **enveloppes** avec allocation mensuelle et **report automatique** du solde non utilisé au mois suivant (c'est la mécanique clé de la méthode), **bucket** (groupes d'enveloppes), **catégories** de transactions, **règles** d'auto-catégorisation, **rapports** (revenus vs dépenses par mois/catégorie, bilan d'enveloppes, balance nette), **import** CSV depuis l'UI, **multi-devises** partiel.
|
|
|
|
L'**architecture Blazor Server** signifie que la logique tourne côté serveur, et l'UI est mise à jour via SignalR (WebSocket). C'est rapide, fluide, et permet d'utiliser tout l'écosystème .NET (LINQ, Entity Framework, ASP.NET). L'**inconvénient** : chaque interaction client → aller-retour serveur (latence réseau perceptible si serveur distant), et la consommation RAM peut être plus élevée qu'un simple Flask.
|
|
|
|
L'**historique** du projet est intéressant : initialement **WPF Windows-only**, il a évolué vers **Blazor Server** pour devenir accessible en web. La documentation est correcte, l'auteur (TheAxelander) est actif, et le projet a une petite communauté fidèle. Idéal pour les **amateurs de stack Microsoft** qui veulent une alternative self-hosted à des outils comme Money in Excel (Microsoft) ou des apps .NET de suivi budget.
|
|
|
|
## Installation
|
|
|
|
### Via Docker (recommandé)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
services:
|
|
openbudgeteer:
|
|
image: ghcr.io/theaxelander/openbudgeteer:latest
|
|
container_name: openbudgeteer
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8080:8080"
|
|
environment:
|
|
- ASPNETCORE_ENVIRONMENT=Production
|
|
- ASPNETCORE_URLS=http://+:8080
|
|
- CONNECTION_STRING=Data Source=/data/openbudgeteer.db
|
|
- SECRET=Change...et
|
|
volumes:
|
|
- openbudgeteer-data:/data
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8080/"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
volumes:
|
|
openbudgeteer-data:
|
|
```
|
|
|
|
> ⚠️ Vérifier l'image exacte sur le [GHCR](https://github.com/TheAxelander/OpenBudgeteer/pkgs/container/openbudgeteer) (le tag `latest` peut changer).
|
|
|
|
### Installation manuelle (.NET)
|
|
|
|
1. **Pré-requis** : .NET 8 SDK, SQLite (inclus).
|
|
2. `git clone https://github.com/TheAxelander/OpenBudgeteer.git && cd OpenBudgeteer`
|
|
3. `dotnet restore && dotnet build`
|
|
4. Configurer `appsettings.json` (ConnectionString, Secret).
|
|
5. Initialiser la DB : `dotnet ef database update`.
|
|
6. `dotnet run` (dev) ou `dotnet publish -c Release` puis exécuter le binaire publié.
|
|
7. Reverse proxy Nginx/Caddy en front.
|
|
|
|
## Configuration
|
|
|
|
- **Premier lancement** : créer un mot de passe master pour protéger l'accès (mono-utilisateur).
|
|
- **Comptes** : créer un compte par produit bancaire, saisir le solde initial.
|
|
- **Bucket** : regrouper les enveloppes (Logement, Transport, Loisirs, Épargne, etc.).
|
|
- **Enveloppes** : allocation mensuelle par bucket, le solde non dépensé **roule** au mois suivant.
|
|
- **Catégories** : pour les transactions.
|
|
- **Règles** : auto-catégorisation par mot-clé du libellé.
|
|
- **Import** : CSV avec mapping de colonnes.
|
|
- **HTTPS** : obligatoire via reverse proxy.
|
|
- **Backup** : copier le fichier `openbudgeteer.db` régulièrement (cron + rclone).
|
|
|
|
## Alternatives
|
|
|
|
### Open Source
|
|
- [[app-actual-budget]] — référence local-first (TypeScript)
|
|
- [[app-firefly-iii]] — gestion complète (Laravel/PHP)
|
|
- [[app-sure]] — plateforme Elixir moderne
|
|
- [[app-monetr]] — alternative Go
|
|
- [[app-budget-board]] — dashboard TypeScript
|
|
- **Buckwheat** — envelope budgeting (Python)
|
|
- **Cashcog** — envelope budgeting (Python, simpliste)
|
|
- **GnuCash** — comptabilité double-partie (.NET/Mono)
|
|
|
|
### Propriétaires
|
|
- **YNAB** — référence du zero-based (~14$/mois)
|
|
- **Monarch Money** — UX premium (~99$/an)
|
|
- **Money in Excel** (Microsoft) — plug-in Excel pour Microsoft 365
|
|
- **Quicken** — historique, US only, peu d'avenir
|
|
|
|
## Sécurité
|
|
|
|
- **HTTPS obligatoire** via reverse proxy.
|
|
- **SECRET** : clé de l'app, générer aléatoirement (32+ caractères), ne pas commit.
|
|
- **SQLite** : sécuriser les permissions (chmod 600) sur le volume.
|
|
- **Mono-utilisateur** : pas de système multi-comptes natif — compter sur le reverse proxy (Authelia) pour gérer plusieurs utilisateurs.
|
|
- **Backups 3-2-1** : copier régulièrement le fichier DB vers stockage chiffré.
|
|
- **Updates .NET** : .NET 8 LTS supporté jusqu'en novembre 2026, prévoir une migration vers .NET 9 ou 10.
|
|
- **2FA** : non natif, à compenser via reverse proxy.
|
|
- **Logs** : ASP.NET Core logs standards, intégration possible avec Seq, Grafana Loki, etc.
|
|
|
|
## Ressources
|
|
- Site officiel : https://openbudgeteer.com/
|
|
- GitHub : https://github.com/TheAxelander/OpenBudgeteer
|
|
- Documentation : https://github.com/TheAxelander/OpenBudgeteer/wiki
|
|
- selfh.st : https://selfh.st/apps/?tag=budgeting
|
|
|
|
## Pages Liées
|
|
- [[cat-budgeting]] — catégorie parente
|
|
- [[app-actual-budget]] — référence du marché (envelope aussi)
|
|
- [[app-firefly-iii]] — concurrent principal (PHP)
|
|
- [[app-budget-board]] — dashboard TypeScript complémentaire
|
|
- [[recettes-docker-compose]] — templates de déploiement
|
|
- [[securisation-home-lab]] — bonnes pratiques
|