Initial vault setup
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
---
|
||||
title: Monetr
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, budgeting, go, golang, finance, suivi, budget]
|
||||
confidence: medium
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=budgeting, https://github.com/monetr/monetr, https://monetr.app/]
|
||||
---
|
||||
|
||||
# Monetr 🪙
|
||||
|
||||
> Application de **suivi de finances personnelles** écrite en **Go** — performante, légère, binaire unique. Approche pragmatique de l'envelope budgeting avec une UX moderne et un backend solide.
|
||||
|
||||
| Métadonnée | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | https://monetr.app/ |
|
||||
| **GitHub** | https://github.com/monetr/monetr |
|
||||
| **License** | AGPL-3.0 |
|
||||
| **Langage** | Go (backend), TypeScript/React (frontend) |
|
||||
| **Étoiles** | ⭐46 |
|
||||
| **Dernière MAJ** | 2026-04-30 |
|
||||
| **Catégorie** | [[cat-budgeting]] |
|
||||
|
||||
## Description
|
||||
|
||||
Monetr est une application de **suivi de finances personnelles** relativement jeune mais techniquement solide, écrite en **Go** pour le backend (avec React/TypeScript pour le frontend). Le projet se positionne sur l'**envelope budgeting** (méthode enveloppe) avec une approche moderne, multi-utilisateurs, et un focus sur la **performance** (Go = binaire léger, démarrage rapide, faible consommation RAM).
|
||||
|
||||
Les fonctionnalités principales : **comptes** multiples (chèque, épargne, cartes, crédit, prêt), **transactions** avec catégorisation, **enveloppes** par catégorie avec allocation mensuelle, **soldes** reportés d'un mois à l'autre, **règles** d'auto-catégorisation, **revenus récurrents** (salaires, freelances), **dépenses récurrentes** (abonnements, factures), **objectifs d'épargne** (sinking funds) avec progression, **tableau de bord** avec **soldes** par compte/enveloppe, **graphiques** (cash flow, répartition), **import** CSV depuis les banques, **API REST** documentée, **multi-utilisateurs** natif (un serveur peut héberger plusieurs budgets familiaux).
|
||||
|
||||
L'**architecture** est classique et efficace : **Go** backend (probablement avec chi/gin + sqlx/sqlc), **PostgreSQL** comme base, **React/TypeScript** frontend. L'**avantage Go** : binaire unique autoportant (~20 Mo), démarrage en <1s, consommation mémoire faible (~50-100 Mo pour un usage normal), idéal pour un **Raspberry Pi** ou un petit VPS. L'**inconvénient** : projet jeune (~46⭐), moins de retours utilisateurs que Firefly ou Actual — à surveiller.
|
||||
|
||||
Monetr est particulièrement adapté aux **familles** ou **colocations** grâce au multi-utilisateurs natif, et aux utilisateurs qui veulent un **binaire Go léger** plutôt qu'une stack JS/Node complète.
|
||||
|
||||
## Installation
|
||||
|
||||
### Via Docker (recommandé)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
services:
|
||||
monetr:
|
||||
image: ghcr.io/monetr/monetr:latest
|
||||
container_name: monetr
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
ports:
|
||||
- "8080:8080"
|
||||
environment:
|
||||
- MONETR_DB_HOST=db
|
||||
- MONETR_DB_PORT=5432
|
||||
- MONETR_DB_NAME=monetr
|
||||
- MONETR_DB_USER=monetr
|
||||
- MONETR_DB_PASSWORD=*** - MONETR_LISTEN=0.0.0.0:8080
|
||||
- MONETR_PUBLIC_URL=https://budget.example.com
|
||||
- MONETR_SECURE_COOKIES=true
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8080/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
db:
|
||||
image: postgres:16-alpine
|
||||
container_name: monetr-db
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- POSTGRES_DB=monetr
|
||||
- POSTGRES_USER=monetr
|
||||
- POSTGRES_PASSWORD=*** volumes:
|
||||
- monetr-db:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U monetr -d monetr"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
|
||||
volumes:
|
||||
monetr-db:
|
||||
```
|
||||
|
||||
> ⚠️ Vérifier le tag exact sur le [GHCR](https://github.com/monetr/monetr/pkgs/container/monetr) et la nomenclature des variables d'environnement (elles peuvent avoir changé).
|
||||
|
||||
### Installation manuelle (Go)
|
||||
|
||||
1. **Pré-requis** : Go 1.22+, Node.js 20+ (frontend build), PostgreSQL 14+.
|
||||
2. `git clone https://github.com/monetr/monetr.git && cd monetr`
|
||||
3. Build backend : `go build -o monetr ./cmd/monetr`
|
||||
4. Build frontend : `cd web && npm install && npm run build && cd ..`
|
||||
5. Configurer `config.yaml` ou variables d'environnement (DB, secret, URL).
|
||||
6. Migrations : `./monetr migrate up` (selon la version).
|
||||
7. `./monetr serve` (production).
|
||||
8. Reverse proxy Nginx/Caddy en front.
|
||||
|
||||
## Configuration
|
||||
|
||||
- **Premier lancement** : créer le compte owner via l'UI d'inscription.
|
||||
- **MONETR_SECURE_COOKIES=true** : obligatoire en HTTPS.
|
||||
- **MONETR_PUBLIC_URL** : URL externe utilisée pour les liens/OAuth.
|
||||
- **Comptes** : créer un compte par produit bancaire.
|
||||
- **Enveloppes** : allocation mensuelle, le solde non utilisé roule.
|
||||
- **Récurrences** : configurer salaires, abonnements.
|
||||
- **HTTPS** : obligatoire via reverse proxy.
|
||||
- **Backups** : `pg_dump` quotidien + copie du volume (uploads éventuels).
|
||||
|
||||
## Alternatives
|
||||
|
||||
### Open Source
|
||||
- [[app-actual-budget]] — référence local-first (TypeScript)
|
||||
- [[app-firefly-iii]] — gestion complète (PHP)
|
||||
- [[app-sure]] — plateforme Elixir moderne
|
||||
- [[app-myfin]] — alternative Python
|
||||
- [[app-budget-board]] — dashboard TypeScript
|
||||
- **Buckwheat** / **Cashcog** — envelope budgeting Python
|
||||
- **Maybe** / **Perfin** — projets alternatifs (Ruby/Go)
|
||||
|
||||
### Propriétaires
|
||||
- **YNAB** — référence du zero-based (~14$/mois)
|
||||
- **Monarch Money** — UX premium (~99$/an)
|
||||
- **Rocket Money** — focus souscription
|
||||
- **PocketGuard** — mobile-first US
|
||||
|
||||
## Sécurité
|
||||
|
||||
- **HTTPS obligatoire** via reverse proxy.
|
||||
- **MONETR_DB_PASSWORD** : mot de passe fort, généré aléatoirement, user PostgreSQL non-superutilisateur.
|
||||
- **Cookies sécurisés** : `MONETR_SECURE_COOKIES=true` en production HTTPS.
|
||||
- **JWT/Sessions** : tokens stockés côté serveur, expiration régulière.
|
||||
- **2FA** : à confirmer selon la roadmap, sinon Authelia/Authentik en front.
|
||||
- **Backups 3-2-1** : `pg_dump` + volumes, tester la restauration.
|
||||
- **Updates Go** : Go est rétrocompatible, suivre la branche stable.
|
||||
- **CSP et headers** : via reverse proxy (Caddy/Traefik).
|
||||
- **Logs** : logs structurés Go (slog, zap), monitorer via Grafana Loki ou équivalent.
|
||||
|
||||
## Ressources
|
||||
- Site officiel : https://monetr.app/
|
||||
- GitHub : https://github.com/monetr/monetr
|
||||
- Documentation : https://docs.monetr.app/
|
||||
- selfh.st : https://selfh.st/apps/?tag=budgeting
|
||||
|
||||
## Pages Liées
|
||||
- [[cat-budgeting]] — catégorie parente
|
||||
- [[app-actual-budget]] — concurrent direct (envelope aussi)
|
||||
- [[app-firefly-iii]] — référence du marché (PHP)
|
||||
- [[app-sure]] — alternative Elixir
|
||||
- [[app-myfin]] — alternative Python
|
||||
- [[recettes-docker-compose]] — templates de déploiement
|
||||
- [[securisation-home-lab]] — bonnes pratiques
|
||||
Reference in New Issue
Block a user