--- title: Invoice Ninja created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, accounting, invoice, facturation, laravel, php, crm, paiements] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Accounting, https://github.com/invoiceninja/invoiceninja, https://invoiceninja.com/] --- # Invoice Ninja 🩊 > Plateforme complĂšte de facturation, devis, gestion clients et paiements en ligne — alternative open source Ă  FreshBooks et Harvest, en Laravel. | MĂ©tadonnĂ©e | Valeur | | :--- | :--- | | **Site web** | https://invoiceninja.com/ | | **GitHub** | https://github.com/invoiceninja/invoiceninja | | **License** | AGPL-3.0 (code) + Elastic License v2 (certaines briques) | | **Langage principal** | PHP (Laravel) + Vue.js (React Native pour les apps mobiles) | | **Étoiles GitHub** | ⭐2649 | | **DerniĂšre MAJ** | 2026-05-28 | | **CatĂ©gorie** | [[cat-accounting]] | ## Description Invoice Ninja est une **plateforme de facturation et de gestion commerciale** Ă©crite en **Laravel** (PHP 8+) avec un frontend Vue.js. L'outil s'adresse aux **freelances, agences et PME** qui ont besoin d'Ă©mettre des factures professionnelles, suivre leurs paiements, gĂ©rer leurs clients et accepter des rĂšglements en ligne — le tout depuis une interface web Ă©lĂ©gante et une API REST documentĂ©e. Les fonctionnalitĂ©s natives couvrent la **crĂ©ation de factures/devis/avoirs en PDF personnalisable**, la **gestion des clients et contacts**, le **suivi des temps** (timesheet) et la conversion temps → facture, la **gestion des dĂ©penses et notes de frais**, les **rappels automatiques de paiement**, la **facture rĂ©currente/abonnement**, et un **portail client** oĂč le destinataire peut consulter et payer ses factures. Les **passerelles de paiement** (Stripe, PayPal, Mollie, Checkout, Braintree, Square, GoCardless, etc.) sont intĂ©grables via des modules et permettent l'encaissement direct depuis la facture. Le projet est distribuĂ© sous une **double licence** : le code principal est **AGPL-3.0** (donc libre et auto-hĂ©bergeable), mais l'Ă©diteur a progressivement basculĂ© certaines briques (notamment le v5 et le SDK mobile) sous **Elastic License v2**, ce qui interdit la revente en SaaS concurrent. Pour un auto-hĂ©bergeur, l'usage reste gratuit et conforme Ă  l'esprit open source. La v5 (UI refondue) coexiste avec la v4 (LTS) qui reste trĂšs utilisĂ©e. ## Installation ### Via Docker (recommandĂ©) ```yaml # docker-compose.yml services: server: image: invoiceninja/invoiceninja:latest container_name: invoice-ninja restart: unless-stopped depends_on: db: condition: service_healthy ports: - "8080:80" environment: - APP_URL=https://facture.example.com - APP_KEY=base64:GĂ©nĂ©rerAvecArtisanKey:Generate - DB_HOST=db - DB_DATABASE=ninja - DB_USERNAME=ninja - DB_PASSWORD=ChangeMoiDbPass - MAIL_HOST=smtp.example.com - MAIL_PORT=587 - MAIL_USERNAME=facture@example.com - MAIL_PASSWORD=ChangeMoiMailSMTP - MAIL_FROM_ADDRESS=facture@example.com - MAIL_FROM_NAME="Ma SociĂ©tĂ©" - PHANTOMJS_PDF_GENERATOR=false volumes: - ninja-data:/var/www/html/storage - ninja-public:/var/www/html/public - ninja-logs:/var/www/html/storage/logs db: image: mysql:8.0 container_name: ninja-db restart: unless-stopped environment: - MYSQL_DATABASE=ninja - MYSQL_USER=ninja - MYSQL_PASSWORD=ChangeMoiDbPass - MYSQL_RANDOM_ROOT_PASSWORD=ChangeMoiRootMysql volumes: - ninja-db:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 10s timeout: 5s retries: 10 # Cron pour les relances et factures rĂ©currentes cron: image: invoiceninja/invoiceninja:latest container_name: ninja-cron restart: unless-stopped depends_on: - server entrypoint: | sh -c 'while true; do php /var/www/html/artisan schedule:run; sleep 60; done' volumes: ninja-data: ninja-public: ninja-logs: ninja-db: ``` ### Installation manuelle 1. PrĂ©-requis : PHP 8.1+, MySQL 8 ou MariaDB 10.5+, Composer, Node 18+ (build), Nginx, Redis (optionnel mais recommandĂ© pour le cache). 2. `git clone https://github.com/invoiceninja/invoiceninja.git && cd invoiceninja` 3. `composer install --no-dev` puis `php artisan key:generate` 4. Configurer `.env` (DB, APP_URL, MAIL, REDIS). 5. `php artisan migrate --seed` pour initialiser la base. 6. `npm ci && npm run build` pour le frontend. 7. Servir `public/` via Nginx + PHP-FPM, en redirigeant toutes les requĂȘtes vers `index.php`. 8. Configurer un cron : `* * * * * cd /var/www/invoiceninja && php artisan schedule:run >> /dev/null 2>&1`. ## Configuration - **Premier compte** : crĂ©er un super-admin via `php artisan ninja:create-account --email=admin@example.com --password=...`. - **Personnalisation PDF** : designer les templates (logos, couleurs, mentions lĂ©gales FR : SIRET, TVA intracommunautaire, numĂ©ro RCS). - **NumĂ©rotation** : format configurable par type de document (ex : `F{YYYY}{MM}{SEQ}` pour des factures numĂ©rotĂ©es par mois). - **Devises** : multi-devises activable, taux de change stockĂ©s par facture (figĂ©s Ă  l'Ă©mission). - **Paiements en ligne** : configurer au moins Stripe ou Mollie dans `Settings → Payment Gateways` — la clĂ© API secrĂšte reste cĂŽtĂ© serveur. - **Espace client** : activable par client, permet de consulter / payer / refuser une facture sans login tiers. - **IntĂ©grations** : Zapier, webhooks sortants, API REST v1 (trĂšs utilisĂ©e par les intĂ©grateurs). ## Alternatives ### Open source - [[app-akaunting]] — concurrent direct, plus axĂ© comptabilitĂ© pure qu'UX facturation. - [[app-invoiceplane]] — facturation PHP minimaliste, plus lĂ©ger, sans le volet paiement en ligne aussi riche. - [[app-odoo]] — ERP complet avec module facturation trĂšs puissant, mais lourd. - **Crater** — facturation open source plus jeune, stack Node.js/React, interface moderne. - **SolidInvoice** — fork/Ă©quivalent PHP pour la facturation simple. ### PropriĂ©taires - **FreshBooks** — rĂ©fĂ©rence pour les freelances, non libre et donnĂ©es hĂ©bergĂ©es. - **Harvest + Forecast** — suivi du temps et facturation, lissĂ© sur le cloud. - **Wave** — gratuit en ligne, modĂšle freemium publicitaire. - **Pennylane** — français, plus axĂ© compta + sync bancaire que facturation pure. ## SĂ©curitĂ© - **HTTPS obligatoire** : les factures portent des informations clients et des liens de paiement — Ă  chiffrer en transit. - **`APP_KEY`** : clĂ© de chiffrement Laravel pour les sessions/cookies — sauvegarder hors conteneur, sa perte rend les sessions illisibles. - **Stockage S3** : pour les PDF de factures Ă  fort volume, basculer le disque sur S3 (ou MinIO auto-hĂ©bergĂ©) plutĂŽt que le volume local. - **Sauvegardes** : `mysqldump` quotidien + `tar` de `ninja-data` (logos, PDF gĂ©nĂ©rĂ©s, documents attachĂ©s). - **Rotation des clĂ©s API** : Stripe/Mollie — surveiller l'usage, configurer des alertes. - **Mises Ă  jour** : suivre la v5 stable ; les montĂ©es de version impliquent souvent des migrations DB. ## Ressources - Site officiel : https://invoiceninja.com/ - Documentation : https://invoiceninja.readthedocs.io/ - DĂ©pĂŽt GitHub : https://github.com/invoiceninja/invoiceninja - API REST : https://api-docs.invoiceninja.com/ - Forum communautaire : https://forum.invoiceninja.com/ - selfh.st : https://selfh.st/apps/?tag=Accounting ## Pages LiĂ©es - [[cat-accounting]] (catĂ©gorie parente) - [[app-akaunting]] — comptabilitĂ© Laravel, plus complĂšte - [[app-invoiceplane]] — facturation PHP simple - [[app-crater]] — alternative Node.js moderne - [[recettes-docker-compose]] — templates de dĂ©ploiement - [[securisation-home-lab]] — bonnes pratiques