TaxHacker : Construire un système de comptabilité IA à coût zéro

March 21, 2026

Difficulté : ★★☆☆☆ | Durée : 15 minutes | Bénéfice : Maîtriser le déploiement et les fonctionnalités clés d'une application de comptabilité IA auto-hébergée

Public cible : Développeurs indépendants, freelances, propriétaires de petites entreprises et passionnés de technologie intéressés par l'automatisation de la gestion financière.

Dépendances clés : Docker, Docker Compose, API LLM (OpenAI/Gemini/Mistral)


1 Présentation du projet

Parlons d'abord du projet TaxHacker.

TaxHacker est une application de comptabilité IA open-source et auto-hébergée, conçue spécifiquement pour les freelances, les petites entreprises et les développeurs individuels. Son principal argument de vente : utiliser l'IA pour identifier et extraire automatiquement les données financières des factures et reçus, transformant les tâches fastidieuses de saisie manuelle en une opération simple en un clic.

Vous pourriez vous demander pourquoi utiliser cet outil alors qu'il existe tant de logiciels financiers sur le marché ? Voici quelques raisons :

  • Reconnaissance intelligente par IA : Téléchargez une photo de reçu et l'IA extrait automatiquement le nom de l'article, le montant, la date, le marchand, etc., même sur les reçus manuscrits.
  • Support multi-devises : Supporte plus de 170 devises fiduciaires et 14 crypto-monnaies, avec conversion automatique basée sur les taux de change historiques à la date de la transaction.
  • 100 % auto-hébergé : Les données sont stockées sur votre propre serveur, vous gardez un contrôle total sur votre vie privée sans craindre de fuites de données financières.
  • Gratuit et open-source : Licence MIT, zéro frais de licence.

Ce projet est construit avec Next.js 15 + Prisma + PostgreSQL. Le déploiement Docker est très simple et peut être opérationnel en 15 minutes.


2 Préparation de l'environnement

Avant de commencer le déploiement, vérifiez votre environnement.

2.1 Configuration matérielle

  • Mémoire : Au moins 4 Go de RAM (8 Go recommandés)
  • Stockage : Au moins 10 Go d'espace disponible (pour stocker les images de factures téléchargées)
  • Système : Linux/macOS/Windows (nécessite le support Docker)

2.2 Configuration logicielle

Vous devez installer les logiciels suivants :

  • Docker Engine 20.10+
  • Docker Compose 2.0+

TIP

Pour les utilisateurs Windows, l'utilisation de WSL2 + Docker Desktop est la combinaison la plus stable.

2.3 Préparation de l'API LLM

TaxHacker supporte trois fournisseurs de LLM :

  • OpenAI (GPT-4o recommandé)
  • Google Gemini
  • Mistral

Vous aurez besoin d'une clé API pour que l'IA puisse identifier les factures. Si vous voulez économiser, vous pouvez envisager la plateforme Defapi — elle propose les API des principaux LLM à moitié prix par rapport aux tarifs officiels, supporte OpenAI, Claude, Gemini, etc., et est totalement compatible avec le protocole API d'OpenAI.


3 Structure du projet

Avant le déploiement, jetons un coup d'œil à la structure globale du projet :

TaxHacker/
├── app/                    # Application Next.js
│   ├── (app)/             # Routes de l'application principale
│   │   ├── dashboard/    # Tableau de bord
│   │   ├── transactions/ # Enregistrements de transactions
│   │   ├── settings/      # Page de paramètres
│   │   └── ...
│   └── api/              # Routes API
├── ai/                    # Logique centrale de l'IA
│   ├── analyze.ts        # Analyse des reçus
│   ├── prompt.ts         # Modèles de prompts
│   └── providers/        # Fournisseurs LLM
├── prisma/               # Modèles de base de données
├── docker-compose.yml    # Configuration d'orchestration Docker
├── Dockerfile            # Définition de l'image Docker
└── .env.example          # Exemple de variables d'environnement

4 Déploiement Docker en un clic

Commençons officiellement le déploiement. La méthode Docker est la plus simple, une seule commande suffit.

4.1 Téléchargement des fichiers de configuration

# Créer le répertoire du projet
mkdir -p taxhacker && cd taxhacker

# Télécharger docker-compose.yml
curl -O https://raw.githubusercontent.com/vas3k/TaxHacker/main/docker-compose.yml

# Télécharger le modèle de variables d'environnement
curl -O https://raw.githubusercontent.com/vas3k/TaxHacker/main/.env.example

4.2 Configuration des variables d'environnement

# Copier le fichier des variables d'environnement
cp .env.example .env

Ouvrez .env avec votre éditeur préféré et remplissez les configurations clés suivantes :

# Configuration de base
PORT=7331
BASE_URL=http://localhost:7331
SELF_HOSTED_MODE=true

# Configuration DB (utilise le PostgreSQL inclus dans docker-compose)
DATABASE_URL=postgresql://postgres:postgres@db:5432/taxhacker

# Chemin de stockage des fichiers
UPLOAD_PATH=/app/data/uploads

# Clé d'authentification (au moins 16 caractères)
BETTER_AUTH_SECRET=votre-cle-super-secrete-a-modifier

# Désactiver l'inscription (recommandé en mode auto-hébergé)
DISABLE_SIGNUP=true

# Configuration LLM (exemple avec OpenAI)
OPENAI_MODEL_NAME=gpt-4o
OPENAI_API_KEY=votre-cle-api-openai-ici

# Ou utiliser Google Gemini
# GOOGLE_MODEL_NAME=gemini-2.0-flash
# GOOGLE_API_KEY=votre-cle-api-gemini-ici

WARNING

BETTER_AUTH_SECRET doit impérativement être remplacé par une chaîne aléatoire complexe pour garantir la sécurité.

4.3 Lancement du service

# Démarrer tous les services
docker compose up -d

Le premier démarrage créera automatiquement la base de données PostgreSQL et exécutera les migrations, cela prend environ 1 à 2 minutes.

4.4 Vérification du déploiement

# Vérifier l'état des conteneurs
docker compose ps

# Consulter les logs
docker compose logs -f app

Si tout est normal, vous devriez voir la page de connexion en accédant à http://localhost:7331.


5 Configuration de base

Une fois le service lancé, nous devons effectuer quelques configurations de base.

5.1 Première connexion

En mode auto-hébergé, TaxHacker crée automatiquement un compte administrateur. Les identifiants par défaut sont :

  • E-mail : admin@localhost
  • Mot de passe : admin

WARNING

Veuillez modifier le mot de passe par défaut immédiatement après votre première connexion !

5.2 Configuration du LLM

Cliquez sur Settings en bas à gauche → LLM, et vérifiez que votre clé API est correctement configurée. Vous pouvez tester si l'IA fonctionne sur cette page :

Test AI Connection: [Cliquer pour tester]

Si le test réussit, cela signifie que le LLM est prêt.

5.3 Définir la devise de base

Dans SettingsCurrencies, définissez votre devise de référence (ex: EUR, CAD, CNY).

5.4 Créer des catégories

Dans SettingsCategories, créez les catégories de dépenses/revenus dont vous avez besoin, par exemple :

  • Restauration
  • Transport
  • Fournitures de bureau
  • Services logiciels
  • Autres revenus

6 Guide pratique des fonctionnalités

Maintenant que l'environnement est configuré, voyons comment utiliser l'IA pour identifier les factures.

6.1 Télécharger votre premier reçu

Allez dans la zone Unsorted (Non classé) de la page d'accueil, cliquez sur le bouton Upload, et téléchargez une image de reçu ou une facture PDF.

Formats supportés : JPG, PNG, PDF. Une fois le téléchargement réussi, vous verrez un aperçu du fichier.

6.2 Reconnaissance automatique par IA

Cliquez sur le bouton Analyze à côté du fichier. L'IA commencera à analyser votre reçu. Après quelques secondes, vous verrez les résultats extraits :

{
  "date": "2026-03-15",
  "merchant": "Starbucks Coffee",
  "amount": 5.50,
  "currency": "EUR",
  "items": [
    { "name": "Latte", "quantity": 1, "price": 5.50 }
  ],
  "category": "Restauration"
}

Si les résultats sont erronés, vous pouvez les éditer manuellement.

6.3 Confirmer et enregistrer

Après avoir vérifié les données, cliquez sur Confirm, et cette transaction sera ajoutée à votre grand livre.

6.4 Conversion automatique multi-devises

Si vous téléchargez une facture en devise étrangère (ex: USD), TaxHacker va automatiquement :

  1. Identifier le type de devise
  2. Récupérer le taux de change historique à la date de la transaction
  3. Convertir le montant dans votre devise de base

Vous pouvez consulter la liste des devises supportées (incluant BTC, ETH, etc.) dans SettingsCurrencies.

6.5 Champs personnalisés

Si vous avez des besoins d'extraction spécifiques, vous pouvez créer des champs personnalisés dans SettingsFields. Par exemple, pour extraire le numéro de TVA :

  1. Cliquez sur Add Field
  2. Nom du champ : Numéro de TVA
  3. Remplissez le prompt d'extraction IA : Veuillez extraire le numéro d'identification fiscale/TVA de la facture
  4. Enregistrez

Lors de la prochaine analyse, l'IA tentera automatiquement d'extraire ce champ.


7 Exportation et sauvegarde des données

L'un des points les plus importants en comptabilité est l'exportabilité des données, et TaxHacker excelle dans ce domaine.

7.1 Exportation filtrée

Sur la page Transactions, vous pouvez filtrer par date, catégorie ou projet :

  • Plage de dates : 2026-01-01 au 2026-03-21
  • Catégories : Restauration, Transport
  • Montant : > 100

Après filtrage, cliquez sur Export CSV pour exporter les enregistrements avec toutes leurs pièces jointes.

7.2 Sauvegarde complète

Dans SettingsBackups, vous pouvez créer une sauvegarde complète incluant :

  • Un instantané de la base de données
  • Tous les fichiers téléchargés
  • Les informations de configuration

Le fichier de sauvegarde peut être téléchargé localement pour garantir la sécurité des données.


8 Dépannage (FAQ)

Voici les problèmes courants que vous pourriez rencontrer :

Q1 : Échec du lancement du conteneur, erreur de connexion à la base de données

Vérifiez que DATABASE_URL dans docker-compose.yml est correct. La configuration par défaut utilise db comme nom d'hôte (réseau interne Docker). Si vous utilisez une base de données externe, ajustez l'URL en conséquence.

Q2 : L'analyse IA reste bloquée sur "En cours de traitement"

Vérifiez d'abord si la clé API LLM est correctement configurée. Consultez ensuite les logs du conteneur :

docker compose logs app | grep -i error

Si vous voyez une erreur "rate limit", cela signifie que le quota de votre API est atteint.

Q3 : Erreur "Fichier trop volumineux" lors du téléchargement

La limite par défaut est de 10 Mo. Pour augmenter cette limite, modifiez le fichier .env :

MAX_FILE_SIZE=20971520  # 20 Mo

Ensuite, redémarrez le service : docker compose restart

Q4 : La reconnaissance des reçus n'est pas précise

Vous pouvez personnaliser le prompt système dans SettingsLLM pour donner plus de contexte à l'IA. Par exemple, si vous travaillez dans la restauration, ajoutez :

Tu es un comptable spécialisé dans la restauration, expert dans l'identification des formats de reçus des restaurants et snacks.

Q5 : Comment modifier le mot de passe de connexion ?

Connectez-vous, cliquez sur votre avatar en haut à droite → Profile, où vous pourrez modifier votre mot de passe et votre e-mail.

Q6 : Que faire si j'oublie le mot de passe administrateur ?

Vous devez le réinitialiser via la base de données. Connectez-vous au conteneur PostgreSQL :

docker exec -it taxhacker-db-1 psql -U postgres -d taxhacker

Exécutez ensuite :

UPDATE users SET password_hash = 'nouveau_hash_du_mot_de_passe' WHERE email = 'admin@localhost';

9 Pour aller plus loin

Après avoir maîtrisé les fonctions de base, explorez ces usages avancés :

9.1 Personnalisation des prompts IA

TaxHacker vous permet de personnaliser profondément le comportement de l'IA. Modifiez le prompt système dans SettingsLLM pour que l'IA extraie les données selon les normes de votre secteur.

9.2 Gestion multi-projets

Créez différents projets dans SettingsProjects (ex: "Projet A", "Projet B") pour suivre les revenus et dépenses par projet, idéal pour les freelances gérant plusieurs activités.

9.3 Automatisation avec OpenClaw

Si vous déployez également OpenClaw, vous pouvez lui faire appeler périodiquement l'API TaxHacker pour traiter automatiquement les reçus non classés, réalisant ainsi une comptabilité totalement autonome.

9.4 Sauvegarde automatique planifiée

Utilisez un cronjob pour appeler l'API de sauvegarde :

0 2 * * * curl -X POST http://localhost:7331/api/backups

Cela créera une sauvegarde automatique chaque jour à 2h du matin.

Updated March 21, 2026