Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
@@ -0,0 +1,201 @@
---
title: Firefly III
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, budgeting, laravel, php, finance, personnel, banques, psd2]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=budgeting, https://github.com/firefly-iii/firefly-iii, https://firefly-iii.org/]
---
# Firefly III 🔥
> Gestionnaire de **finances personnelles complet** écrit en Laravel, avec import bancaire via PSD2 (Spectre), règles automatiques, budgets, rapports avancés et API REST riche. C'est la **référence open source** pour qui veut maîtriser ses finances avec une UX web moderne.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://www.firefly-iii.org/ |
| **GitHub** | https://github.com/firefly-iii/firefly-iii |
| **License** | AGPL-3.0 |
| **Langage** | PHP 8.2+ (Laravel 11) |
| **Étoiles** | ⭐2190 |
| **Dernière MAJ** | 2026-05-28 |
| **Catégorie** | [[cat-budgeting]] |
## Description
Firefly III est une application web de **gestion de finances personnelles** conçue pour les particuliers, freelances et couples qui veulent reprendre le contrôle de leur argent. Contrairement à Actual Budget (local-first), Firefly est une **application web classique** avec backend serveur et base de données. L'**API REST** est très complète et permet d'intégrer Firefly dans des workflows complexes.
Les fonctionnalités phares incluent : **comptes multiples** (chèque, épargne, cartes, crédit, actifs, prêts, dettes), **transactions récurrentes** et **règles automatiques** de catégorisation/re-tagging, **budgets** par catégorie avec suivi mensuel, **enveloppes** (piggy banks), **objectifs d'épargne** avec progression, **rattachement de reçus** (upload PDF/images), **import** depuis CSV/OFX/Spectre (PSD2), **règlements** de dettes entre comptes, **tags**, **rapports** sophistiqués (cash flow, balance sheet, income/expense par catégorie, audits), **multi-devises** avec taux de change automatique (ECB, exchangerate.host).
L'**import bancaire** est l'un des points forts : via **Spectre** (anciennement Salt Edge) ou **Nordigen** (PSD2 européen), Firefly peut se connecter directement à **plus de 12 000 banques européennes** avec leur API officielle. Spectre propose un tier gratuit (limité), au-delà c'est ~5$/mois. Une **data importer** séparée (`firefly-iii/data-importer`) gère les imports CSV/OFX/CMT/Spectre et applique les règles. L'écosystème comprend aussi **Firefly Importer** et **Firefly Reconcile** (modules complémentaires).
L'**UX** est moderne (HTMX + Alpine.js pour la réactivité sans build complexe), multilingue (français intégral), avec un système de **rôles** (owner, demo) et **2FA TOTP** natif. Le projet est **très actif** (multiples commits/jour), avec une documentation détaillée et une communauté Discord dynamique.
## Installation
### Via Docker (recommandé)
```yaml
# docker-compose.yml
services:
app:
image: fireflyiii/core:latest
container_name: firefly-iii
restart: unless-stopped
depends_on:
db:
condition: service_healthy
cache:
condition: service_started
ports:
- "8080:8080"
env_file: .env
volumes:
- firefly-upload:/var/www/html/storage/upload
db:
image: mariadb:11
container_name: firefly-db
restart: unless-stopped
environment:
- MARIADB_DATABASE=firefly
- MARIADB_USER=firefly
- MARIADB_PASSWORD=ChangeM3_FireflyMaria
- MARIADB_RANDOM_ROOT_PASSWORD=ChangeMoiRootMdb
volumes:
- firefly-db:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 10s
timeout: 5s
retries: 10
cache:
image: redis:7-alpine
container_name: firefly-cache
restart: unless-stopped
volumes:
- firefly-cache:/data
importer:
image: fireflyiii/data-importer:latest
container_name: firefly-importer
restart: unless-stopped
depends_on:
- app
env_file: .env
volumes:
- firefly-importer:/import
cron:
image: alpine:3.20
container_name: firefly-cron
restart: unless-stopped
command: >
sh -c "
echo '0 3 * * * wget -qO- http://app:8080/api/v1/cron/$$STATIC_CRON_TOKEN' > /etc/crontabs/root &&
crond -f -L /dev/stdout"
env_file: .env
volumes:
firefly-db:
firefly-upload:
firefly-cache:
firefly-importer:
```
```bash
# .env (exemple)
APP_KEY=base64:VOTRE_CLE_ICI
APP_URL=https://budget.example.com
TZ=Europe/Paris
SITE_OWNER=vous@example.com
TRUSTED_PROXIES=**
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=firefly
DB_USERNAME=firefly
DB_PASSWORD=ChangeM3_FireflyMaria
REDIS_HOST=cache
REDIS_PORT=6379
STATIC_CRON_TOKEN=ChangeM3_CronToken
MAIL_MAILER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
MAIL_USERNAME=budget@example.com
MAIL_PASSWORD=ChangeMoiMailSMTP
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=budget@example.com
```
### Installation manuelle (LAMP)
1. **Pré-requis** : PHP 8.2+ (extensions : BCMath, Ctype, cURL, DOM, Fileinfo, JSON, Mbstring, OpenSSL, PDO_MySQL, Tokenizer, XML, Zip, GD, Intl, sodium), MariaDB 10.5+ ou PostgreSQL 13+, Composer, Node.js 18+ (build), Redis (optionnel pour cache/queue).
2. `git clone https://github.com/firefly-iii/firefly-iii.git && cd firefly-iii`
3. `composer install --no-dev`
4. Copier `.env.example` vers `.env` et configurer.
5. `php artisan key:generate`
6. `php artisan migrate --seed`
7. `php artisan passport:install` (OAuth2).
8. `php artisan firefly-iii:upgrade-database` (ou laisser l'auto-upgrade au premier accès).
9. Servir via Nginx + PHP-FPM ; configurer le cron (`0 3 * * * php artisan schedule:run`).
## Configuration
- **Premier accès** : assistant web pour créer le propriétaire, configurer devise/locale (fr-FR), fuseau horaire.
- **Comptes** : créer un compte par produit bancaire (compte courant, Livret A, PEA, crédit immo, etc.).
- **Catégories et tags** : hiérarchie libre, tags transversaux.
- **Budgets** : par catégorie, par mois, avec report optionnel.
- **Règles** : moteur puissant (trigger + action) pour auto-catégoriser les imports.
- **Spectre/Nordigen** : créer une app sur https://saltedge.com/ ou https://nordigen.com/, configurer `SPECTRE_APP_ID`, `SPECTRE_SECRET`, lier des comptes bancaires.
- **Data Importer** : pour les imports manuels CSV/OFX, configurer les mappings colonne.
- **2FA** : activable depuis le profil utilisateur (TOTP via Google Authenticator, Aegis, etc.).
- **API** : jetons personnels ou OAuth2 (via Passport) — utilisable par n8n, Home Assistant, etc.
## Alternatives
### Open Source
- [[app-actual-budget]] — local-first TypeScript, plus moderne, méthodologie enveloppe
- [[app-sure]] — plateforme finance/budget moderne (Elixir/Phoenix)
- [[app-monetr]] — alternative Go, plus jeune
- [[app-ezbookkeeping]] — multi-devises léger (Go)
- **iHat** — outil minimaliste Python
- **Firefly III Data Importer** — compagnon officiel
### Propriétaires
- **YNAB** — référence du zero-based budgeting (~14$/mois)
- **Monarch Money** — agrégation bancaire, UX soignée (~99$/an)
- **Mint** (abandonné, ex-Intuit) — bascule vers Credit Karma
- **YNAB companion** apps mobiles
- **PocketGuard**, **Rocket Money** — apps grand public
## Sécurité
- **HTTPS obligatoire** via reverse proxy (Traefik/Caddy) — données financières critiques.
- **2FA natif TOTP** : à activer pour le compte owner et tout compte avec droits admin.
- **Variables sensibles** : `APP_KEY`, secrets DB, tokens Spectre dans `.env` (chmod 600) ou secrets Docker/Swarm/K8s.
- **Spectre** : stocker les credentials de l'app tierce en variable d'environnement, surveiller les quotas API.
- **Sauvegardes 3-2-1** : `mysqldump` quotidien + copie du volume `firefly-upload` (reçus/fichiers).
- **Updates réguliers** : suivre la branche stable, consulter la release notes (migrations DB parfois nécessaires).
- **Fail2ban** : sur Nginx en front, pour bloquer les tentatives de brute force.
- **Headers de sécurité** : `Strict-Transport-Security`, `Content-Security-Policy`, `X-Frame-Options` via reverse proxy.
## Ressources
- Site officiel : https://www.firefly-iii.org/
- Documentation : https://docs.firefly-iii.org/
- GitHub : https://github.com/firefly-iii/firefly-iii
- Data Importer : https://github.com/firefly-iii/data-importer
- Discord : https://discord.gg/3PbZQXv
- selfh.st : https://selfh.st/apps/?tag=budgeting
## Pages Liées
- [[cat-budgeting]] — catégorie parente
- [[app-actual-budget]] — concurrent local-first moderne
- [[app-sure]] — alternative Elixir moderne
- [[app-monetr]] — alternative Go
- [[cat-accounting]] — gestion comptable (freelances/entreprises)
- [[recettes-docker-compose]] — templates de déploiement
- [[securisation-home-lab]] — bonnes pratiques sécurité