Initial vault setup
This commit is contained in:
@@ -0,0 +1,155 @@
|
||||
---
|
||||
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é
|
||||
Reference in New Issue
Block a user