--- title: Invoice Builder created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, accounting, facturation, pdf, nodejs, express] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=Accounting, https://github.com/salmandabbir/invoice-builder] --- # Invoice Builder 🧮 > **Générateur de factures PDF** minimaliste en **Node.js / Express** — saisissez vos lignes, exportez un PDF propre, sans base de données à gérer. | Métadonnée | Valeur | | :--- | :--- | | **Site web** | https://github.com/salmandabbir/invoice-builder | | **GitHub** | https://github.com/salmandabbir/invoice-builder | | **License** | MIT | | **Langage** | Node.js (Express) + PDFKit/Handlebars | | **Étoiles** | ⭐50 | | **Dernière MAJ** | 2024-04 | | **Catégorie** | [[cat-accounting]] | ## Description **Invoice Builder** est une application web **légère et sans état** écrite en **Node.js (Express)**, dont l'unique vocation est de **générer des factures PDF** professionnelles à partir d'un formulaire web. Le projet s'adresse aux **indépendants et très petites structures** qui ont besoin d'un outil rapide, sans base de données, sans comptes utilisateurs à gérer, et qu'on peut **démarrer en deux minutes**. Le fonctionnement est délibérément simple : on remplit un formulaire (émetteur, client, lignes de prestation avec quantité/prix/TVA, conditions de paiement), un **moteur de rendu** (Handlebars + PDFKit ou Puppeteer) compose un **PDF A4** propre, prêt à être envoyé par email. Plusieurs **modèles de facture** sont fournis (moderne, classique, minimaliste), ainsi qu'un **calcul automatique de TVA** (HT, TVA, TTC) et de **totaux par devise**. L'intérêt de Invoice Builder face à des solutions plus lourdes comme [[app-invoice-ninja]] ou [[app-rachoon]] est sa **simplicité d'auto-hébergement** : pas de PostgreSQL à sauvegarder, pas de migrations à appliquer, un seul processus Node à redémarrer. Idéal pour un **usage personnel, ponctuel ou éducatif**, ou comme base à fork pour un projet sur-mesure. Inadapté en revanche dès qu'on a besoin de **suivi des paiements, relances, ou multi-utilisateurs**. ## Installation ### Via Docker (placeholder à adapter) ```yaml # docker-compose.yml services: invoice-builder: image: ghcr.io/salmandabbir/invoice-builder:latest container_name: invoice-builder restart: unless-stopped ports: - "5085:3000" environment: PORT: 3000 APP_NAME: "Mon Auto-Entreprise" volumes: - ./templates:/app/templates ``` ### Manuelle (Node ≥ 18) ```bash git clone https://github.com/salmandabbir/invoice-builder.git cd invoice-builder npm install node app.js # → http://localhost:3000 ``` ## Configuration L'application se configure via un **fichier `config.json`** ou des **variables d'environnement** : `APP_NAME` (nom de l'entreprise émettrice), `DEFAULT_CURRENCY` (`EUR`, `USD`…), `DEFAULT_TAX_RATE` (par ex. `20`), `TEMPLATE` (modèle de PDF parmi `modern`/`classic`/`minimal`). Les **modèles Handlebars** (`templates/*.hbs`) sont modifiables pour ajouter un logo, des mentions légales ou un pied de page personnalisé. ## Alternatives - **Open Source** : [[app-rachoon]] (Svelte, plus complet), [[app-invoice-ninja]] (Laravel, full-featured), [[app-invoiceplane]] (PHP), [[app-crater]] (Node/React, plus complet) - **Propriétaire** : **Invoice Generator** (invoice-generator.com), **Zoho Invoice**, **Wave Invoicing**, **PayPal Invoicing** ## Sécurité - **Aucune donnée persistante** n'est stockée par défaut, ce qui limite la surface d'attaque mais oblige à **conserver ses propres PDF** - Mettre le service **derrière HTTPS** (Caddy / Traefik) — voir [[recettes-docker-compose]] - Si déployé publiquement, ajouter une **authentification basique** (Basic Auth via reverse-proxy) pour éviter les abus - Maintenir Node.js et les dépendances à jour (`npm audit` + Dependabot/Renovate) - Ne **jamais** committer le `config.json` avec de vraies coordonnées bancaires ## Ressources - Code source : https://github.com/salmandabbir/invoice-builder - PDFKit (moteur PDF Node) : https://pdfkit.org - Handlebars (templating) : https://handlebarsjs.com ## Pages Liées - [[cat-accounting]] - [[recettes-docker-compose]] - [[app-rachoon]] - [[app-invoice-ninja]] - [[app-crater]]