156 lines
7.4 KiB
Markdown
156 lines
7.4 KiB
Markdown
---
|
|
title: Receipt Wrangler
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, document-management, receipts, scanner, ocr, typescript, nodejs]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=document-management, https://github.com/Receipt-Wrangler/receipt-wrangler, https://www.receiptwrangler.io/]
|
|
---
|
|
|
|
# Receipt Wrangler 🧾
|
|
|
|
> **Gestionnaire de reçus/tickets de caisse** spécialisé : uploadez vos tickets scannés, Receipt Wrangler les OCR, extrait les métadonnées (montant, date, vendeur, catégorie), et permet la validation collaborative en équipe.
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | https://www.receiptwrangler.io/ |
|
|
| **GitHub** | https://github.com/Receipt-Wrangler/receipt-wrangler |
|
|
| **License** | AGPL-3.0 |
|
|
| **Langage** | TypeScript / Node.js (NestJS + Angular) |
|
|
| **Étoiles** | ⭐19 |
|
|
| **Dernière MAJ** | 2026-05-01 |
|
|
| **Catégorie** | [[cat-document-management]] |
|
|
|
|
## Description
|
|
|
|
Receipt Wrangler est un **gestionnaire de reçus** (tickets de caisse, factures) pensé pour les **équipes** (comptabilité, RH, associations) qui doivent **valider et catégoriser** les dépenses avant remboursement ou export comptable. Contrairement à Paperless (généraliste) ou Firefly III (budgeting), Receipt Wrangler est **ultra-spécialisé** sur le workflow de gestion des notes de frais : upload, OCR, validation par un manager, export CSV/PDF vers un logiciel comptable.
|
|
|
|
L'**OCR** est basé sur Tesseract 5 (auto-hébergé) ou un service cloud optionnel (Google Vision, AWS Textract) pour une meilleure qualité sur les tickets froissés/sombres. Le **parser** extrait automatiquement : montant TTC/HT, TVA, date, vendeur, numéro de ticket, devise. Les **règles de catégorisation automatique** (regex sur vendeur → catégorie) accélèrent le classement. L'**API REST** complète permet l'intégration avec des outils tiers (Slack pour notifications, ERP pour export).
|
|
|
|
L'**UI Angular** est dense et orientée « workflow » : tableau de bord des reçus en attente, vue détaillée avec preview du scan, commentaires/mentions pour collaboration, historique d'audit complet, export groupé. Le **multi-utilisateurs** est natif (auth, groupes, permissions par groupe), ce qui distingue Receipt Wrangler des apps mono-utilisateur. Idéal pour les **TPE, associations, labos, services comptables** qui gèrent 50-500 reçus/mois.
|
|
|
|
## Installation
|
|
|
|
### Via Docker Compose (recommandé)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
services:
|
|
api:
|
|
image: ghcr.io/receipt-wrangler/api:latest
|
|
container_name: receipt-wrangler-api
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8085:3000"
|
|
environment:
|
|
- DATABASE_URL=postgres://receipt:***@db:5432/receipt
|
|
- JWT_SECRET=*** - UPLOAD_DIR=/data/uploads
|
|
- OCR_ENGINE=tesseract
|
|
- OCR_LANG=fra+eng
|
|
- TESSERACT_PATH=/usr/bin/tesseract
|
|
- APP_URL=https://receipts.example.com
|
|
volumes:
|
|
- receipt-data:/data
|
|
depends_on:
|
|
- db
|
|
|
|
frontend:
|
|
image: ghcr.io/receipt-wrangler/frontend:latest
|
|
container_name: receipt-wrangler-frontend
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8086:80"
|
|
environment:
|
|
- API_URL=http://api:3000
|
|
|
|
db:
|
|
image: postgres:16-alpine
|
|
container_name: receipt-db
|
|
restart: unless-stopped
|
|
environment:
|
|
- POSTGRES_DB=receipt
|
|
- POSTGRES_USER=receipt
|
|
- POSTGRES_PASSWORD=*** volumes:
|
|
- receipt-db:/var/lib/postgresql/data
|
|
|
|
volumes:
|
|
receipt-data:
|
|
receipt-db:
|
|
```
|
|
|
|
> **Note** : pour l'OCR Tesseract, s'assurer que le binaire `/usr/bin/tesseract` et les modèles `fra.traineddata`/`eng.traineddata` sont présents dans l'image API (image custom requise si pas embarqués).
|
|
|
|
### Installation manuelle
|
|
|
|
1. **Pré-requis** : Node.js 18+, Angular CLI 16+, PostgreSQL 14+, Tesseract 5 + langues, ImageMagick.
|
|
2. **API** : `git clone https://github.com/Receipt-Wrangler/receipt-wrangler-api && cd receipt-wrangler-api && npm install && npm run build && npm start` (port 3000).
|
|
3. **Frontend** : `git clone https://github.com/Receipt-Wrangler/receipt-wrangler-frontend && cd receipt-wrangler-frontend && npm install && npm run build` (sert le bundle statique via Nginx).
|
|
4. **DB** : créer la base `receipt`, configurer `DATABASE_URL` dans `.env`.
|
|
5. **Premier admin** : créé via `npm run seed` ou via l'UI au premier lancement.
|
|
|
|
## Configuration
|
|
|
|
- **Premier admin** : créé via la commande seed ou via l'UI (mode invitation).
|
|
- **Groupes** : créer des groupes (ex: « Équipe Marketing », « Compta ») avec rôles distincts (lecteur, validateur, admin).
|
|
- **Catégories** : définir les catégories de dépenses (Transport, Repas, Hébergement, Fournitures, etc.) avec regex d'auto-catégorisation.
|
|
- **Validation** : configurer le workflow de validation (ex: « tout reçu > 50€ doit être validé par un manager »).
|
|
- **Export** : configurer les formats d'export (CSV, PDF groupé, format ERP).
|
|
- **OCR** : choisir le moteur (Tesseract local ou cloud), définir les langues.
|
|
- **Notifications** : configurer SMTP pour emails (notifications de validation) et webhooks Slack optionnels.
|
|
- **HTTPS** : obligatoire via reverse proxy.
|
|
- **Backups** : `pg_dump` + rsync du dossier `uploads/`.
|
|
|
|
## Alternatives
|
|
|
|
### Open Source
|
|
- [[app-paperless-ngx]] — GED complète (peut gérer des reçus)
|
|
- [[app-mayan-edms]] — EDMS enterprise
|
|
- [[app-papermerge]] — GED moderne
|
|
- [[app-docspell]] — EDMS Scala avec ML auto
|
|
- [[app-papra]] — GED TypeScript minimaliste
|
|
- **Firefly III** — budgeting/finance (gère les dépenses mais pas l'OCR de reçus)
|
|
- **Actual Budget** — budgeting local-first
|
|
- **GnuCash** — comptabilité double-partie (desktop)
|
|
- **Invoice Ninja** — facturation + dépenses (PHP)
|
|
|
|
### Propriétaires
|
|
- **Expensify** — référence freemium, OCR excellent, export comptable
|
|
- **Rydoo** — gestion notes de frais enterprise
|
|
- **Spendesk** — cartes + reçus entreprise
|
|
- **Lettuce** — gestion reçus simple
|
|
- **Dext** (anciennement Receipt Bank) — référence comptable
|
|
- **QuickBooks** — comptabilité + reçus
|
|
- **Pennylane** — comptabilité + reçus (FR)
|
|
- **Sage** — comptabilité enterprise
|
|
|
|
## Sécurité
|
|
|
|
- **HTTPS obligatoire** + HSTS via reverse proxy.
|
|
- **JWT** : `JWT_SECRET` long et aléatoire.
|
|
- **2FA** : TOTP natif dans les paramètres utilisateur (depuis v2+).
|
|
- **SSO OIDC/SAML** : intégrable via `passport-openidconnect` (config manuelle).
|
|
- **RBAC** : permissions par groupe, très granulaires.
|
|
- **Audit log** : toutes les actions loggées (upload, validation, export).
|
|
- **Chiffrement at-rest** : monter les volumes sur stockage chiffré.
|
|
- **Quotas** : limiter la taille d'upload par user pour éviter les abus.
|
|
- **CVE** : Node.js/Angular à jour, suivre les releases GitHub.
|
|
- **Backups testés** : tester la restauration (DB + scans).
|
|
- **Conformité RGPD** : les reçus contiennent des données personnelles (nom, montant) — attention à la conservation.
|
|
|
|
## Ressources
|
|
- Site officiel : https://www.receiptwrangler.io/
|
|
- Documentation : https://docs.receiptwrangler.io/
|
|
- GitHub : https://github.com/Receipt-Wrangler/receipt-wrangler
|
|
- Discord communautaire : https://discord.gg/receipt-wrangler
|
|
- selfh.st : https://selfh.st/apps/?tag=document-management
|
|
|
|
## Pages Liées
|
|
- [[cat-document-management]] — catégorie parente
|
|
- [[app-paperless-ngx]] — GED plus généraliste
|
|
- [[app-docspell]] — EDMS auto-classé
|
|
- [[app-papermerge]] — concurrent moderne
|
|
- [[recettes-docker-compose]] — templates de déploiement
|
|
- [[securisation-home-lab]] — bonnes pratiques sécurité
|