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

146 lines
6.4 KiB
Markdown

---
title: Sure
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, budgeting, finance, elixir, phoenix, liveview, moderne]
confidence: medium
contested: false
sources: [https://selfh.st/apps/?tag=budgeting, https://github.com/suretec/sure, https://www.sure.am/]
---
# Sure 🐢
> Plateforme de **finance personnelle moderne** écrite en **Elixir + Phoenix LiveView**, conçue pour être rapide, temps réel, et extensible. Concurrente directe d'Actual Budget et Firefly III avec une approche "developer-first".
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://www.sure.am/ |
| **GitHub** | https://github.com/suretec/sure |
| **License** | AGPL-3.0 |
| **Langage** | Elixir (Phoenix LiveView) |
| **Étoiles** | ⭐137 |
| **Dernière MAJ** | 2026-04-22 |
| **Catégorie** | [[cat-budgeting]] |
## Description
Sure (à l'origine "Sure Finance" puis renommé) est une application web de **gestion de finances personnelles** qui se veut moderne, performante et ouverte. Construite sur la stack **Elixir/Phoenix** (le langage créé par José Valim, ex-core Rails), elle bénéficie de la **concurrence massive** d'Erlang/OTP et de la **réactivité temps réel** de Phoenix LiveView (pas de SPA à recharger — le serveur pousse les mises à jour via WebSocket).
Les fonctionnalités principales incluent : **comptes multiples** (chèque, épargne, cartes, crédit, crypto, prêts), **transactions** récurrentes et ponctuelles, **catégories** et **tags**, **budgets** par catégorie avec suivi mensuel, **objectifs d'épargne** avec progression, **règles** de catégorisation automatique, **import** CSV/OFX, **rapports** (revenus/dépenses, cash flow, balance), **multi-devises** avec taux de change, **partage** de budgets entre utilisateurs (couples, familles), **API JSON** complète (compatible avec une éventuelle migration depuis/vers Actual ou Firefly).
La **stack Elixir** est un choix intéressant : Sure consomme peu de RAM par utilisateur (BEAM VM est optimisée pour des millions de processus légers), démarre en quelques secondes, et bénéficie du tooling solide de Phoenix (LiveView, Ecto pour la DB, Channel pour le temps réel). L'**inconvénient** : moins de dev/ops familiers avec Elixir que PHP/Python/JS, et les images Docker nécessitent souvent 200-400 Mo de base.
Sure se positionne comme une **alternative moderne** à Firefly III, avec un focus sur l'**UX temps réel** et l'**extensibilité** (architecture en services). Le projet est moins mature que ses concurrents directs (Actual, Firefly) mais techniquement très prometteur.
## Installation
### Via Docker (recommandé)
```yaml
# docker-compose.yml
services:
sure:
image: ghcr.io/suretec/sure:latest
container_name: sure
restart: unless-stopped
depends_on:
db:
condition: service_healthy
ports:
- "4000:4000"
environment:
- SECRET_KEY_BASE=Change...et
- DATABASE_URL=postgresql://sure:Change...@db:5432/sure
- HOST=0.0.0.0
- PORT=4000
- PHX_HOST=https://budget.example.com
volumes:
- sure-data:/app/data
db:
image: postgres:16-alpine
container_name: sure-db
restart: unless-stopped
environment:
- POSTGRES_DB=sure
- POSTGRES_USER=sure
- POSTGRES_PASSWORD=Change...e
volumes:
- sure-db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U sure -d sure"]
interval: 10s
timeout: 5s
retries: 10
volumes:
sure-db:
sure-data:
```
> ⚠️ Vérifier l'image exacte sur le [GHCR](https://github.com/suretec/sure/pkgs/container/sure) (le tag `latest` peut évoluer).
### Installation manuelle (Elixir)
1. **Pré-requis** : Elixir 1.15+, OTP 26+, Node.js 18+ (assets), PostgreSQL 14+, build-essential.
2. `git clone https://github.com/suretec/sure.git && cd sure`
3. `mix deps.get`
4. `cd assets && npm install && cd ..`
5. Configurer `config/runtime.exs` ou variables d'environnement (`DATABASE_URL`, `SECRET_KEY_BASE`).
6. `mix ecto.setup` (migrations + seed).
7. `mix phx.server` (dev) ou `MIX_ENV=prod mix release` (build release autoportant).
8. Reverse proxy Nginx/Caddy/Traefik en front.
## Configuration
- **Premier lancement** : créer le compte owner via l'UI d'inscription.
- **Devise principale** : configurée à l'init, modifiable ensuite.
- **Comptes** : créer un compte par produit bancaire, saisir solde initial.
- **Catégories** : créer l'arborescence libre.
- **Budgets** : par mois, par catégorie, avec suivi.
- **Import** : CSV ou OFX depuis l'UI.
- **Règles** : moteur d'auto-catégorisation (trigger + action).
- **HTTPS obligatoire** : via reverse proxy.
- **Backups** : `pg_dump` quotidien + copie du volume Sure (fichiers téléversés).
## Alternatives
### Open Source
- [[app-actual-budget]] — local-first, plus mature
- [[app-firefly-iii]] — référence, stack LAMP
- [[app-monetr]] — Go, plus jeune
- **Maybe** (Ruby on Rails) — projet jumeau, fork d'Origin/Maybe
- **Origin** / **Perfin** — projets abandonnés/similaires
### Propriétaires
- **YNAB** — référence zéro-based (~14$/mois)
- **Monarch Money** — UX premium (~99$/an)
- **PocketGuard** — mobile-first
- **Rocket Money** — focus souscription
## Sécurité
- **HTTPS obligatoire** via reverse proxy.
- **SECRET_KEY_BASE** : token critique pour les sessions — générer avec `mix phx.gen.secret` (64+ caractères).
- **PostgreSQL** : créer un user dédié (non-superutilisateur), mot de passe fort, limiter l'écoute au réseau Docker interne.
- **2FA** : à venir selon la roadmap (suivre le GitHub).
- **Updates Elixir/Phoenix** : suivre la branche stable, les releases OTP sont rétrocompatibles.
- **Backups 3-2-1** : `pg_dump` + volume Sure, tester régulièrement la restauration.
- **Surveiller le runtime** : logs LiveView, métriques BEAM (`:observer`, Prometheus + Elixir metrics).
- **CSP et headers** : via reverse proxy (Caddy/Traefik middleware).
## Ressources
- Site officiel : https://www.sure.am/
- GitHub : https://github.com/suretec/sure
- Documentation : https://github.com/suretec/sure/wiki
- selfh.st : https://selfh.st/apps/?tag=budgeting
## Pages Liées
- [[cat-budgeting]] — catégorie parente
- [[app-actual-budget]] — concurrent direct (TypeScript)
- [[app-firefly-iii]] — référence du marché (Laravel)
- [[app-monetr]] — alternative Go
- [[recettes-docker-compose]] — templates de déploiement
- [[securisation-home-lab]] — bonnes pratiques