Files
wiki/Catalogue-Self-Hosted/apps/app-monetr.md
T
2026-06-09 18:40:21 +02:00

152 lines
6.6 KiB
Markdown

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