Aller au contenu

Installer Fisherboy

Fisherboy est livré sous la forme d’une unique image Docker autonome (ghcr.io/diegoparras/fisherboy:latest). La même image exécute l’API, le worker et l’interface web optionnelle ; un service Redis prend en charge la file de jobs.

  • Docker (Docker Desktop sous Windows/Mac, ou Docker Engine sous Linux).
  • Un service Redis pour la file — inclus dans les fichiers compose fournis.
  • Environ 1 Go d’espace disque pour l’image (elle embarque Chromium pour les niveaux navigateur).
  • Aucun service externe n’est requis pour démarrer : si ANONIMAL_URL n’est pas défini, l’anonymiseur regex intégré est utilisé.

Le chemin le plus rapide — autonome, avec l’interface web :

Fenêtre de terminal
git clone https://github.com/diegoparras/fisherboy.git
cd fisherboy
cp .env.example .env # définissez SECRET_KEY + GOD/ANGEL/HUMAN_PASSWORD
docker compose -f docker-compose.standalone.yml up -d --build
# → ouvrez http://localhost:8000

Le fichier docker-compose.standalone.yml démarre trois services — l’API (fisherboy-api, sur le port 8000), le worker (fisherboy-worker) et Redis (fisherboy-redis) — tous sur un réseau privé.

Commandes de suivi utiles :

Fenêtre de terminal
docker compose -f docker-compose.standalone.yml logs -f # suivre les logs
docker compose -f docker-compose.standalone.yml down # arrêter

Vous ne voulez pas construire l’image ? Récupérez l’image préconstruite (publiée par GitHub Actions) :

Fenêtre de terminal
docker pull ghcr.io/diegoparras/fisherboy:latest

Exécutez-la manuellement avec un conteneur Redis à côté :

Fenêtre de terminal
docker run -d --name fisherboy-redis redis:7-alpine
docker run -d --name fisherboy-api --env-file .env \
-e APP_MODE=standalone \
-e REDIS_URL=redis://fisherboy-redis:6379/0 \
-p 8000:8000 --link fisherboy-redis \
ghcr.io/diegoparras/fisherboy:latest
docker run -d --name fisherboy-worker --env-file .env \
-e APP_MODE=standalone \
-e REDIS_URL=redis://fisherboy-redis:6379/0 \
--link fisherboy-redis \
ghcr.io/diegoparras/fisherboy:latest python -m app.worker

L’API est la commande par défaut de l’image (uvicorn app.main:app --host 0.0.0.0 --port 8000) ; le worker est lancé avec python -m app.worker.

Copiez .env.example vers .env et définissez au moins :

APP_MODE=standalone
SECRET_KEY=<une longue chaîne aléatoire>
GOD_PASSWORD=<votre mot de passe administrateur>
ANGEL_PASSWORD=<optionnel>
HUMAN_PASSWORD=<optionnel>
COOKIE_SECURE=0 # 0 pour du local http://localhost (sans HTTPS)
  1. Démarrez la stack (docker compose -f docker-compose.standalone.yml up -d --build). La première construction prend quelques minutes ; les démarrages suivants sont instantanés.
  2. Ouvrez http://localhost:8000.
  3. À l’écran de connexion, saisissez votre GOD_PASSWORD.

Fisherboy fonctionne dans l’un de deux modes, choisi par APP_MODE. Le cœur est identique ; le mode décide seulement si l’interface web est montée et où la conversion des documents est déléguée.

standalonesidekick
Interface weboui, la siennenon, sans interface
InterfaceUI + REST + MCPREST + MCP
Usageauto-hébergement, personnelderrière Escriba, réseau interne

Pour le mode sidekick derrière Escriba, utilisez docker-compose.yml, qui rejoint le réseau externe escriba_internal afin d’atteindre Anonimal et Escriba.

VariableValeur par défautCe qu’elle fait
APP_MODEsidekickstandalone (monte l’interface web) ou sidekick (sans interface).
SECRET_KEYRequise avec l’authentification. Signe le cookie de session ; utilisez la même valeur sur chaque réplica.
GOD_PASSWORD / ANGEL_PASSWORD / HUMAN_PASSWORDMots de passe de rôle. Définissez-en au moins un pour activer la connexion.
COOKIE_SECURE1N’envoie le cookie de session que via HTTPS. Mettez 0 pour du http local.
FISHERBOY_OPEN_GOD0Dev uniquement : accès ouvert en tant que dios sans connexion. Jamais en production.
REDIS_URLredis://fisherboy-redis:6379/0File + stockage des enveloppes.
ANONIMAL_URLAnonimal (à l’intérieur d’Escriba) pour la reconnaissance d’entités nommées complète. Vide, se rabat sur l’anonymiseur regex intégré.
MAX_FETCH_TIER3Plafond d’escalade (0 statique, 1 TLS, 2 furtif, 3 navigateur).
PROXIESPool de proxys séparés par virgule/ligne.
MAX_JOBS_PER_MIN60Limite de débit des soumissions de jobs par IP.
CRAWL_MAX_PAGES100Plafond strict de pages par job.
LLM_API_BASE_URL / LLM_API_KEY / LLM_MODELPour output_format=json (extraction par LLM).
ALLOW_PRIVATE_TARGETS0Dev/test uniquement — désactive la protection SSRF. Jamais en production.

La liste complète et commentée se trouve dans .env.example dans le dépôt. Pour Docker Desktop, EasyPanel et le déploiement en production, voir docs/DEPLOY.md.

Lire la documentation