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

111 lines
4.9 KiB
Markdown

---
title: SolidInvoice
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, accounting, facturation, laravel, php, crm, paiements]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Accounting, https://github.com/SolidInvoice/SolidInvoice, https://solidinvoice.co/]
---
# SolidInvoice 💎
> **Plateforme de facturation et de gestion commerciale** pour freelances et PME, écrite en **PHP (Laravel/Symfony)** — alternative mature à Invoice Ninja avec un focus sur la **simplicité**.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://solidinvoice.co |
| **GitHub** | https://github.com/SolidInvoice/SolidInvoice |
| **License** | MIT |
| **Langage** | PHP 8.2+ (Symfony + bundles) + MariaDB/PostgreSQL |
| **Étoiles** | ⭐222 |
| **Dernière MAJ** | 2025-02 |
| **Catégorie** | [[cat-accounting]] |
## Description
**SolidInvoice** est une **plateforme de facturation et de gestion commerciale** écrite en **PHP** sur la base du framework **Symfony** (avec des composants réutilisés du monde Laravel). Le projet vise les **freelances, agences et PME** qui ont besoin d'un outil complet pour gérer devis, factures, clients et paiements, dans une interface web moderne et responsive, sans les lourdeurs d'un ERP traditionnel.
L'application couvre le **cycle commercial complet** : gestion de **clients et contacts**, émission de **devis** convertibles en factures d'un clic, **factures récurrentes** (abonnements), **notes de crédit / avoirs**, **rappels automatiques** de paiement, **multi-devises** et **multi-taxes**, **tableaux de bord** synthétisant le chiffre d'affaires encaissé / en attente / en retard. L'**export PDF** des documents est natif (basé sur des templates Twig), et une **API REST** permet des intégrations tierces (CRM, e-commerce).
SolidInvoice se positionne comme une **alternative plus légère et plus simple** à [[app-invoice-ninja]] (qui souffre d'une double licence AGPL + Elastic) et à [[app-akaunting]] (plus complet mais plus lourd). Sa **license MIT** claire, son **architecture Symfony** solide et son **code base de qualité** en font un bon choix pour un auto-hébergeur qui veut une solution PHP éprouvée, sans la complexité administrative de logiciels comme Sage ou QuickBooks.
## Installation
### Via Docker (placeholder à adapter)
```yaml
# docker-compose.yml
services:
solidinvoice:
image: ghcr.io/solidinvoice/solidinvoice:latest
container_name: solidinvoice
restart: unless-stopped
ports:
- "8080:80"
environment:
APP_ENV: prod
APP_SECRET: changez-moi-long-aleatoire
DATABASE_URL: mysql://solidinvoice:secret@db:3306/solidinvoice?serverVersion=10.11
volumes:
- ./uploads:/var/www/html/var/uploads
depends_on:
- db
db:
image: mariadb:11
container_name: solidinvoice-db
restart: unless-stopped
environment:
MARIADB_DATABASE: solidinvoice
MARIADB_USER: solidinvoice
MARIADB_PASSWORD: secret
MARIADB_ROOT_PASSWORD: root-secret
volumes:
- ./dbdata:/var/lib/mysql
```
### Manuelle (PHP ≥ 8.2, Composer)
```bash
git clone https://github.com/SolidInvoice/SolidInvoice.git
cd SolidInvoice
composer install --no-dev
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migrate
php -S 0.0.0.0:8000 -t public/
```
## Configuration
Variables d'environnement principales : `APP_ENV` (`prod` recommandé), `APP_SECRET` (clé applicative, ≥ 32 caractères), `DATABASE_URL` (MariaDB/MySQL ou PostgreSQL), `MAILER_DSN` (notifications et relances SMTP). Le fichier `config/packages/*.yaml` permet d'ajuster la **devise par défaut**, les **formats de numérotation** des factures, les **modèles PDF** (Twig) et les **passerelles de paiement** actives (PayPal, Stripe, etc.).
## Alternatives
- **Open Source** : [[app-invoice-ninja]] (Laravel, plus complet), [[app-akaunting]] (Laravel, comptabilité intégrée), [[app-invoiceplane]] (PHP legacy), [[app-crater]] (Node/React)
- **Propriétaire** : **FreshBooks**, **QuickBooks**, **Sage**, **Wave Accounting**, **Xero**
## Sécurité
- **APP_SECRET** : valeur aléatoire forte, unique par instance
- Mettre le service **derrière HTTPS** (Traefik, Caddy, Nginx) — voir [[recettes-docker-compose]]
- MariaDB : ne **jamais** exposer le port 3306 sur l'hôte (réseau Docker interne)
- Sauvegardes : `mariadb-dump` quotidien + test de restauration mensuel
- Activer les **en-têtes de sécurité** (HSTS, CSP, X-Frame-Options) via reverse-proxy
- Mettre à jour PHP et les dépendances Composer régulièrement (`composer audit`)
## Ressources
- Site officiel : https://solidinvoice.co
- Code source : https://github.com/SolidInvoice/SolidInvoice
- Documentation Symfony : https://symfony.com/doc
- Documentation Doctrine ORM : https://www.doctrine-project.org
## Pages Liées
- [[cat-accounting]]
- [[recettes-docker-compose]]
- [[app-invoice-ninja]]
- [[app-akaunting]]
- [[app-invoiceplane]]