Initial vault setup
This commit is contained in:
@@ -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é
|
||||
Reference in New Issue
Block a user