7.8 KiB
title, created, updated, type, tags, confidence, contested, sources
| title | created | updated | type | tags | confidence | contested | sources | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| InvoiceShelf | 2026-06-07 | 2026-06-07 | app |
|
high | false |
|
🧾 InvoiceShelf
Fork moderne de Crater Invoice, solution open-source complète de facturation, devis, dépenses et paiements pour freelances et PME, écrite en Laravel + Vue.js.
| Métadonnée | Valeur |
|---|---|
| Site web | https://invoiceshelf.com/ |
| GitHub | https://github.com/InvoiceShelf/InvoiceShelf |
| License | AGPL-3.0 |
| Langage | PHP (Laravel 13) / Vue.js 3 |
| Étoiles | ⭐ 1 700 (≈352 sur selfh.st) |
| Dernière MAJ | 2026-06-04 |
| Catégorie | cat-accounting |
📝 Description
InvoiceShelf est né en 2021 du fork de Crater Invoice lorsque le mainteneur principal a cessé d'assurer les releases. La communauté a repris le flambeau pour proposer une solution de facturation moderne, sous AGPL-3.0, bâtie sur Laravel 13 (PHP 8.4+) côté back et Vue.js 3 + Vite côté front. Le projet a depuis accumulé 132 contributeurs, plus de 1 700 étoiles et 17 releases stables.
Fonctionnellement, InvoiceShelf couvre l'intégralité du cycle de vente : gestion de clients (multi-adresses, multi-contacts), devis convertibles en factures, factures récurrentes, paiements partiels, dépenses catégorisées, portail client en marque blanche (le client voit ses factures et les règle sans créer de compte), multi-sociétés (plusieurs entités juridiques sur une même instance) et champs personnalisés sur les documents. Les exports PDF sont générés via des templates Blade configurables.
L'upgrade récent vers Laravel 13 et Node 24 a modernisé la stack : ESLint 10, Vite 8 (Rolldown), Tailwind 4 avec configuration CSS-based. La roadmap 2026 inclut l'intégration Stripe pour l'acceptation directe des paiements et un marketplace de templates. Les apps mobiles (React Native) sont annoncées pour Android et iOS.
Idéal pour : « Je veux une alternative open-source à Invoice Ninja, auto-hébergée, sans limite de clients, avec un vrai portail client et la possibilité d'ajouter mes propres champs sur les factures ».
🚀 Installation
Option 1 : Docker Compose (recommandé)
# docker-compose.yml
version: "3.8"
services:
app:
image: invoiceninja/invoiceshelf:latest
container_name: invoiceshelf-app
restart: unless-stopped
environment:
APP_URL: https://invoiceshelf.example.com
APP_KEY: ${APP_KEY}
DB_HOST: db
DB_DATABASE: invoiceshelf
DB_USERNAME: invoiceshelf
DB_PASSWORD: invoiceshelf
REDIS_HOST: redis
MAIL_MAILER: smtp
MAIL_HOST: smtp.example.com
MAIL_PORT: 587
MAIL_USERNAME: ${MAIL_USERNAME}
MAIL_PASSWORD: ${MAIL_PASSWORD}
MAIL_ENCRYPTION: tls
volumes:
- ./storage:/var/www/html/storage
depends_on:
- db
- redis
networks: [invoiceshelf]
db:
image: mysql:8.0
container_name: invoiceshelf-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: invoiceshelf
MYSQL_USER: invoiceshelf
MYSQL_PASSWORD: invoiceshelf
volumes:
- ./data/db:/var/lib/mysql
networks: [invoiceshelf]
redis:
image: redis:7-alpine
container_name: invoiceshelf-redis
restart: unless-stopped
networks: [invoiceshelf]
nginx:
image: nginx:alpine
container_name: invoiceshelf-nginx
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- ./certs:/etc/nginx/certs
depends_on:
- app
networks: [invoiceshelf]
networks:
invoiceshelf:
driver: bridge
APP_KEY se génère avec docker run --rm invoiceninja/invoiceshelf php artisan key:generate --show. L'installeur web se lance ensuite sur /install.
Option 2 : Installation manuelle (LAMP)
Prérequis : PHP 8.4+ avec extensions bcmath, curl, gd, intl, mbstring, mysql, xml, zip, MySQL 8 / MariaDB 10.11+, Node 24+, Composer 2. Cloner le repo, composer install, npm install && npm run build, configurer .env, php artisan migrate --seed, configurer Apache/Nginx pour pointer vers public/. Voir la documentation d'installation.
⚙️ Configuration
- Multi-sociétés : crée plusieurs entités juridiques, chacune avec son logo, son SIRET, son compte bancaire.
- Devises : une devise par société, conversion automatique (taux stocké en base) à l'édition de facture.
- Taxes : TVA, GST, taxes composées (TVA + surcharge), supports de la facturation électronique.
- Templates PDF : modifiables via Blade, plusieurs livrés par défaut.
- Portail client : URL dédiée par client (
/customer/portal/{token}), aucune création de compte. - Webhooks sortants : notifier un ERP/CRM à chaque paiement/facture émise.
- Mises à jour in-app : à partir de la v2.0, l'UI détecte les versions et bloque la mise à jour si PHP n'est pas compatible.
- Authentification : email/password par défaut, OAuth2 (Google, GitHub) en option.
🔄 Alternatives
Open Source
- app-crater — Le projet parent (peu maintenu, InvoiceShelf est la branche vivante).
- app-solidinvoice — PHP/Symfony 7, facturation pour freelances, plus léger.
- app-akaunting — Comptabilité PHP, plus large fonctionnellement.
- Invoice Ninja (v5) — Concurrent direct, modèle source-available, forké d'anciennes versions d'INV.
- Crater (original) — Encore en ligne mais quasi-abandonné.
- app-bigcapital — Comptabilité double + stock, plus ambitieux.
Propriétaires (ce que cette app remplace)
- Invoice Ninja Cloud — Version SaaS fermée, Pro à $20/mois.
- FreshBooks — Facturation SaaS pour freelances.
- Wave Invoicing — Freemium fermé.
- Zoho Invoice — Suite Zoho, fermé.
- QuickBooks Simple Start — Facturation de base, fermé.
🔒 Sécurité
- HTTPS obligatoire : via Traefik ou Caddy en frontal, sinon Nginx avec Let's Encrypt.
APP_KEYcritique : 32+ caractères, jamais commit, rotation = perte de toutes les sessions.- 2FA : activable pour les comptes admin (TOTP + recovery codes).
- CSRF/XSS : protection native Laravel, ne pas la désactiver.
- Permissions fichiers :
storage/etbootstrap/cache/en 775 pour l'utilisateur web. - Mise à jour : suivre les releases, l'updateur intégré vérifie la compatibilité PHP.
- Logs :
storage/logs/laravel.logà monitorer, intégration app-glances/app-prometheus possible. - Audit : table
audit_logspour tracer les connexions et modifications critiques.
📚 Ressources
- Site officiel : https://invoiceshelf.com/
- Documentation utilisateur : https://docs.invoiceshelf.com/
- Guide développeur : https://docs.invoiceshelf.com/developer-guide.html
- API : https://api-docs.invoiceshelf.com/
- Repository : https://github.com/InvoiceShelf/InvoiceShelf
- Discord : https://discord.gg/eHXf4zWhsR
- Crowdin (traductions) : https://crowdin.com/project/invoiceshelf
- App mobile (en cours) : https://github.com/InvoiceShelf/mobile
🔗 Pages Liées
- cat-accounting — Catégorie parente
- app-crater — Projet parent (peu actif)
- app-solidinvoice — PHP/Symfony 7 plus léger
- app-akaunting — Comptabilité PHP plus large
- app-bigcapital — Comptabilité double + stock
- app-traefik — Reverse proxy HTTPS
- recettes-docker-compose — Templates Docker
- securisation-home-lab — Bonnes pratiques