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

8.7 KiB


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

# 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:
# .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

Pages Liées