---
title: InvoicePlane
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, accounting, invoice, facturation, php, codeigniter, devis, clients]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Accounting, https://github.com/InvoicePlane/InvoicePlane, https://invoiceplane.com/]
---

# InvoicePlane 🧾

> Application de facturation PHP minimaliste et mature — gestion clients, devis, factures et paiements pour freelances et TPE. Plus de 10 ans d'existence, stack simple.

| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://invoiceplane.com/ |
| **GitHub** | https://github.com/InvoicePlane/InvoicePlane |
| **License** | MIT |
| **Langage principal** | PHP (CodeIgniter 3) |
| **Étoiles GitHub** | ⭐863 |
| **Dernière MAJ** | 2026-04-12 |
| **Catégorie** | [[cat-accounting]] |

## Description

InvoicePlane est une **application web de facturation open source** écrite en PHP sur le framework **CodeIgniter 3**, avec MySQL/MariaDB en backend. C'est l'un des plus anciens projets de facturation auto-hébergeables, démarré en 2014 comme fork communautaire de **FusionInvoice** (devenu ensuite propriétaire). Son credo : **rester simple, léger et fonctionnel**, sans chercher à devenir un ERP complet.

L'application couvre le strict nécessaire d'une **activité de freelance ou de petite entreprise** : gestion des **clients et contacts**, **devis** (convertibles en facture en un clic), **factures** avec numérotation personnalisable, **avoirs**, **paiements partiels**, **rappels automatiques** par email, **notes de frais**, **modèles PDF personnalisables** (via le moteur dompdf), **multi-devises** et **multi-langues** (français inclus, allemand par défaut à l'install).

La force d'InvoicePlane est sa **simplicité de déploiement** : PHP 7.4+, MySQL, Apache/Nginx, et c'est tout. Pas de Node.js, pas de Redis obligatoire, pas de worker. L'interface est sobre et fonctionnelle, sans fioritures mais claire. Pour un usage « j'envoie 5 à 20 factures par mois et je veux que ça marche sans DevOps », c'est un excellent choix. Pour des besoins avancés (paiements en ligne intégrés, abonnements, marketplace de modules), on basculera vers [[app-invoice-ninja]] ou [[app-akaunting]].

## Installation

### Via Docker (recommandé)

```yaml
# docker-compose.yml
services:
  app:
    image: ghcr.io/invoiceplane/invoiceplane:latest
    container_name: invoiceplane
    restart: unless-stopped
    depends_on:
      db:
        condition: service_healthy
    ports:
      - "8080:80"
    environment:
      - APP_URL=https://facture.example.com
      - DB_HOST=db
      - DB_NAME=invoiceplane
      - DB_USER=invoiceplane
      - DB_PASS=ChangeMoiDbPass
      - DB_PREFIX=ip_
      - APP_TIMEZONE=Europe/Paris
    volumes:
      - ip-data:/var/www/html/application/config
      - ip-uploads:/var/www/html/uploads
      - ip-tmp:/var/www/html/tmp

  db:
    image: mariadb:10.11
    container_name: invoiceplane-db
    restart: unless-stopped
    environment:
      - MARIADB_DATABASE=invoiceplane
      - MARIADB_USER=invoiceplane
      - MARIADB_PASSWORD=ChangeMoiDbPass
      - MARIADB_RANDOM_ROOT_PASSWORD=ChangeMoiRoot
    volumes:
      - ip-db:/var/lib/mysql
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      interval: 10s
      timeout: 5s
      retries: 10

volumes:
  ip-data:
  ip-uploads:
  ip-tmp:
  ip-db:
```

### Installation manuelle (LAMP)

1. Pré-requis : PHP 7.4+ (8.0/8.1 supporté), extensions `gd`, `mbstring`, `mysqli`, `xml`, `zip`, `curl`, `intl`, `opcache` ; MariaDB 10.3+ ; Apache (mod_rewrite) ou Nginx.
2. Télécharger l'archive : `wget https://www.invoiceplane.com/download` ou cloner le repo.
3. Extraire dans `/var/www/html/invoiceplane`, donner la propriété à `www-data`.
4. Renommer `application/config/config.php.example` → `config.php` (et `database.php.example` → `database.php`), éditer les identifiants BDD.
5. Créer la base MariaDB et importer `sql/001_install.sql` (optionnel : le script d'install web le fait).
6. Ouvrir `https://facture.example.com/index.php/setup` et suivre l'assistant (création admin, options de base).
7. Configurer un cron quotidien pour les **rappels automatiques** : `0 9 * * * php /var/www/html/invoiceplane/index.php invoices/cron/send_reminders`.

## Configuration

- **Premier lancement** : l'assistant `setup` crée la base, l'admin, la devise par défaut et la langue.
- **Paramètres généraux** : nom de la société, SIRET/TVA intracommunautaire, adresse, logo (PNG), devise principale et secondaires avec taux de change.
- **Numérotation** : préfixe + compteur, configurable par type de document (facture, devis, avoir). Indispensable pour la conformité française (numérotation séquentielle, pas de trou).
- **Modèles PDF** : 3 templates fournis (Default, Blue, Canvas) — personnalisables en HTML/CSS. Les **mentions légales obligatoires** (article L441-3 du Code de commerce : conditions de paiement, taux de pénalité, indemnité forfaitaire de 40 €) doivent y figurer.
- **Devis → Facture** : conversion en un clic, copie des lignes, recalcul TVA.
- **Email** : configurer SMTP dans `application/config/email.php` (Gmail, OVH, Mailgun, etc.).
- **Personnalisation** : thèmes CSS surchargeables via `assets/core/css/custom.css`.

## Alternatives

### Open source
- [[app-invoice-ninja]] — facturation plus moderne (Laravel), paiements en ligne intégrés, API riche.
- [[app-akaunting]] — comptabilité + facturation, plus complet mais plus lourd.
- [[app-crater]] — alternative Node.js/React plus moderne, jeune mais prometteur.
- [[app-odoo]] — ERP complet avec module facturation, surdimensionné pour un freelance.
- **BILLmanager** — facturation par l'éditeur ISPsystem, plus orienté hébergeurs.

### Propriétaires
- **FreshBooks** — référence freelance, interface élégante, données hébergées.
- **QuickBooks** — comptable, plus franco-incompatible.
- **Pennylane** — pépite française, plus axé compta/sync bancaire.
- **Henrri** / **Evoliz** — outils français, freemium, ciblés TPE.

## Sécurité

- **HTTPS obligatoire** : expose factures PDF et données clients — à chiffrer en transit.
- **Renommer ou supprimer `index.php/setup`** après installation — c'est le point d'entrée d'install, source de compromission classique.
- **Permissions fichiers** : `application/config/*.php` (et `database.php`) en `640` ou `600`, utilisateur `www-data`.
- **Sauvegardes** : `mysqldump` quotidien + `tar` de `uploads/` (PDF générés, logos).
- **Mises à jour** : suivre les releases GitHub, le projet reste actif mais sur des bases anciennes (CI 3) — ne pas tarder à migrer vers des alternatives si on a besoin de fonctionnalités modernes.
- **Cron sécurisé** : le script de rappel est exposé via un endpoint web — limiter l'accès par IP ou token.

## Ressources
- Site officiel : https://invoiceplane.com/
- Documentation : https://docs.invoiceplane.com/
- Dépôt GitHub : https://github.com/InvoicePlane/InvoicePlane
- Wiki communauté : https://wiki.invoiceplane.com/
- Forum : https://community.invoiceplane.com/
- selfh.st : https://selfh.st/apps/?tag=Accounting

## Pages Liées
- [[cat-accounting]] (catégorie parente)
- [[app-invoice-ninja]] — facturation Laravel moderne
- [[app-akaunting]] — comptabilité + facturation
- [[app-crater]] — alternative React/Node
- [[recettes-docker-compose]] — templates de déploiement
- [[securisation-home-lab]] — bonnes pratiques
