4.3 KiB
title: Rachoon created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, accounting, facturation, freelance, svelte, typescript] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=Accounting, https://github.com/Rachoon/rachoon]
Rachoon 📑
Facturation simple et moderne pour freelances et micro-entreprises, écrite en TypeScript / SvelteKit — interface épurée, multi-devises, export PDF.
| Métadonnée | Valeur |
|---|---|
| Site web | https://rachoon.app |
| GitHub | https://github.com/Rachoon/rachoon |
| License | AGPL-3.0 |
| Langage | TypeScript (SvelteKit) + SQLite/PostgreSQL |
| Étoiles | ⭐71 |
| Dernière MAJ | 2024-10 |
| Catégorie | cat-accounting |
Description
Rachoon est une application de facturation open source pensée pour les freelances, consultants et petites structures qui veulent émettre des factures et devis propres sans empiler les fonctionnalités d'un ERP. Le projet est construit avec SvelteKit (full-stack TypeScript), ce qui lui confère une interface réactive et légère, aussi agréable sur mobile que sur desktop.
Le cœur de l'application gère le cycle complet de facturation : création de clients/prospects, émission de devis convertibles en factures d'un clic, factures récurrentes (mensuelles, annuelles), suivi des paiements et des relances, multi-devises (EUR, USD, GBP, CHF…), multi-taux de TVA, et export PDF généré côté serveur. Un tableau de bord synthétise le chiffre d'affaires encaissé, en attente et en retard.
Rachoon se distingue par son modèle de licence AGPL-3.0 clair (pas de double licence ambiguë comme app-invoice-ninja), une installation Docker simple mono-conteneur, et une roadmap active orientée vers la collaboration d'équipe (rôles, multi-utilisateurs). C'est une excellente alternative moderne à app-invoiceplane pour qui privilégie une UX contemporaine.
Installation
Via Docker (placeholder à adapter)
# docker-compose.yml
services:
rachoon:
image: ghcr.io/rachoon/rachoon:latest
container_name: rachoon
restart: unless-stopped
ports:
- "3010:3000"
environment:
DATABASE_URL: postgresql://rachoon:secret@db:5432/rachoon
ORIGIN: http://localhost:3010
AUTH_SECRET: changez-moi-long-aleatoire
depends_on:
- db
db:
image: postgres:16-alpine
container_name: rachoon-db
restart: unless-stopped
environment:
POSTGRES_DB: rachoon
POSTGRES_USER: rachoon
POSTGRES_PASSWORD: secret
volumes:
- ./pgdata:/var/lib/postgresql/data
Manuelle (Node ≥ 20)
git clone https://github.com/Rachoon/rachoon.git
cd rachoon
npm install
npm run build
node build/index.js
Configuration
Variables d'environnement principales : DATABASE_URL (PostgreSQL ou SQLite), ORIGIN (URL publique derrière reverse-proxy), AUTH_SECRET (clé de session), SMTP_* (notifications et relances par email). Le fichier app.config.ts permet de définir le logo, les mentions légales par défaut et les modèles de numérotation des factures (préfixe, compteur, format date).
Alternatives
- Open Source : app-invoice-ninja (Laravel, plus complet), app-akaunting (comptabilité intégrée), app-invoiceplane (PHP legacy), app-invio (Python léger)
- Propriétaire : Henrri, Indy, FreshBooks, Zoho Invoice, Stripe Invoicing
Sécurité
- Auth_SECRET doit être une chaîne aléatoire ≥ 32 caractères
- PostgreSQL : ne jamais exposer le port 5432 sur l'hôte (réseau Docker interne uniquement)
- Mettre l'application derrière un reverse-proxy HTTPS (Caddy, Traefik) — voir recettes-docker-compose
- Sauvegardes automatiques :
pg_dumpquotidien + conservation 30 jours (rclone vers S3/Backblaze) - Mettre à jour l'image régulièrement (Watchtower)
- Activer les en-têtes de sécurité côté reverse-proxy (HSTS, CSP, X-Frame-Options)
Ressources
- Démo en ligne : https://rachoon.app
- Code source : https://github.com/Rachoon/rachoon
- Documentation SvelteKit : https://kit.svelte.dev/docs