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

7.4 KiB


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

# 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.exampleconfig.php (et database.php.exampledatabase.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

Pages Liées