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

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