Files
wiki/Catalogue-Self-Hosted/apps/app-receipt-wrangler.md
T
2026-06-09 18:40:21 +02:00

7.4 KiB


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é)

# 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

Pages Liées