Initial vault setup
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
---
|
||||
title: Invoicerr
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, accounting, facturation, freelance, typescript, nestjs]
|
||||
confidence: medium
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=Accounting, https://github.com/n0xgg04/invoicerr]
|
||||
---
|
||||
|
||||
# Invoicerr 📨
|
||||
|
||||
> **Facturation simple et moderne** pour freelances et auto-entrepreneurs, écrite en **TypeScript** (backend NestJS, frontend Next.js) — focus sur la **clarté** et l'**export PDF rapide**.
|
||||
|
||||
| Métadonnée | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | https://github.com/n0xgg04/invoicerr |
|
||||
| **GitHub** | https://github.com/n0xgg04/invoicerr |
|
||||
| **License** | MIT |
|
||||
| **Langage** | TypeScript (NestJS + Next.js) + PostgreSQL/Prisma |
|
||||
| **Étoiles** | ⭐49 |
|
||||
| **Dernière MAJ** | 2024-07 |
|
||||
| **Catégorie** | [[cat-accounting]] |
|
||||
|
||||
## Description
|
||||
|
||||
**Invoicerr** est une application de **facturation open source** écrite en **TypeScript** avec une architecture moderne séparant un **backend NestJS** (API REST documentée, ORM Prisma) et un **frontend Next.js** (React, Tailwind). Le projet cible explicitement les **freelances et auto-entrepreneurs** qui veulent un outil plus simple que [[app-invoice-ninja]] mais plus moderne que [[app-invoiceplane]], avec une UX 2024.
|
||||
|
||||
Les fonctionnalités couvrent le **cycle de facturation** essentiel : gestion de clients, émission de factures et devis, **calcul automatique TVA / HT / TTC**, **multi-devises**, personnalisation des mentions (logo, SIRET, conditions de paiement), **génération PDF** côté serveur, et **historique** consultable par client. Le code suit les **bonnes pratiques TypeScript** (types stricts, validation Zod, tests unitaires), ce qui en fait une bonne base de fork pour des besoins métier spécifiques.
|
||||
|
||||
L'**auto-hébergement** est facilité par la présence d'un `docker-compose.yml` clé-en-main (app + PostgreSQL) sur le dépôt. L'**API REST** documentée (Swagger) ouvre la porte à des intégrations avec des **scripts de relance**, des **tableurs** ou un **pipeline de reporting**. Inconvénient : le projet reste jeune, la communauté est restreinte, et il n'y a pas (encore) de **passerelle de paiement** ni de **facture récurrente** avancée.
|
||||
|
||||
## Installation
|
||||
|
||||
### Via Docker (placeholder à adapter)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
services:
|
||||
invoicerr:
|
||||
image: ghcr.io/n0xgg04/invoicerr:latest
|
||||
container_name: invoicerr
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3020:3000"
|
||||
environment:
|
||||
DATABASE_URL: postgresql://invoicerr:secret@db:5432/invoicerr
|
||||
JWT_SECRET: changez-moi-32-caracteres
|
||||
NEXT_PUBLIC_API_URL: http://localhost:3020
|
||||
depends_on:
|
||||
- db
|
||||
db:
|
||||
image: postgres:16-alpine
|
||||
container_name: invoicerr-db
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_DB: invoicerr
|
||||
POSTGRES_USER: invoicerr
|
||||
POSTGRES_PASSWORD: secret
|
||||
volumes:
|
||||
- ./pgdata:/var/lib/postgresql/data
|
||||
```
|
||||
|
||||
### Manuelle (Node ≥ 20)
|
||||
|
||||
```bash
|
||||
git clone https://github.com/n0xgg04/invoicerr.git
|
||||
cd invoicerr
|
||||
# Backend
|
||||
cd apps/api && npm install && npm run build && npm run start:prod
|
||||
# Frontend (autre terminal)
|
||||
cd ../web && npm install && npm run build && npm run start
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Variables d'environnement principales côté backend : `DATABASE_URL` (PostgreSQL via Prisma), `JWT_SECRET` (signature des tokens d'auth), `SMTP_*` (envoi de factures par email). Côté frontend : `NEXT_PUBLIC_API_URL` (URL du backend). Le fichier `prisma/schema.prisma` permet d'ajuster les modèles ; un `prisma migrate deploy` est requis au premier démarrage.
|
||||
|
||||
## Alternatives
|
||||
|
||||
- **Open Source** : [[app-rachoon]] (Svelte, mature), [[app-invoice-ninja]] (Laravel, très complet), [[app-crater]] (Node, plus ancien), [[app-akaunting]] (comptabilité intégrée)
|
||||
- **Propriétaire** : **Indy** (freelance FR), **Henrri**, **Stripe Invoicing**, **Square Invoices**
|
||||
|
||||
## Sécurité
|
||||
|
||||
- **JWT_SECRET** : chaîne aléatoire ≥ 32 caractères, jamais partagée
|
||||
- Activer **HTTPS** via reverse-proxy (Traefik, Caddy) — voir [[recettes-docker-compose]]
|
||||
- PostgreSQL : ne pas exposer le port 5432 sur l'hôte
|
||||
- Sauvegardes : `pg_dump` quotidien + rotation (rclone vers S3/Backblaze)
|
||||
- Lancer `npm audit` régulièrement et activer Dependabot/Renovate
|
||||
- En production multi-utilisateurs, activer un **rate-limiting** (ex. via Traefik middlewares)
|
||||
|
||||
## Ressources
|
||||
|
||||
- Code source : https://github.com/n0xgg04/invoicerr
|
||||
- Documentation NestJS : https://docs.nestjs.com
|
||||
- Documentation Prisma : https://www.prisma.io/docs
|
||||
|
||||
## Pages Liées
|
||||
|
||||
- [[cat-accounting]]
|
||||
- [[recettes-docker-compose]]
|
||||
- [[app-rachoon]]
|
||||
- [[app-invoice-ninja]]
|
||||
- [[app-crater]]
|
||||
Reference in New Issue
Block a user