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.
Prérequis
Section intitulée « Prérequis »- 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_URLn’est pas défini, l’anonymiseur regex intégré est utilisé.
Démarrage rapide (Docker Compose)
Section intitulée « Démarrage rapide (Docker Compose) »Le chemin le plus rapide — autonome, avec l’interface web :
git clone https://github.com/diegoparras/fisherboy.gitcd fisherboycp .env.example .env # définissez SECRET_KEY + GOD/ANGEL/HUMAN_PASSWORDdocker compose -f docker-compose.standalone.yml up -d --build# → ouvrez http://localhost:8000Le 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 :
docker compose -f docker-compose.standalone.yml logs -f # suivre les logsdocker compose -f docker-compose.standalone.yml down # arrêterExécuter l’image publiée
Section intitulée « Exécuter l’image publiée »Vous ne voulez pas construire l’image ? Récupérez l’image préconstruite (publiée par GitHub Actions) :
docker pull ghcr.io/diegoparras/fisherboy:latestExécutez-la manuellement avec un conteneur Redis à côté :
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.workerL’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.
.env minimal
Section intitulée « .env minimal »Copiez .env.example vers .env et définissez au moins :
APP_MODE=standaloneSECRET_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)Premier lancement
Section intitulée « Premier lancement »- 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. - Ouvrez
http://localhost:8000. - À l’écran de connexion, saisissez votre
GOD_PASSWORD.
Deux modes
Section intitulée « Deux modes »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.
standalone | sidekick | |
|---|---|---|
| Interface web | oui, la sienne | non, sans interface |
| Interface | UI + REST + MCP | REST + MCP |
| Usage | auto-hébergement, personnel | derriè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.
Principales variables d’environnement
Section intitulée « Principales variables d’environnement »| Variable | Valeur par défaut | Ce qu’elle fait |
|---|---|---|
APP_MODE | sidekick | standalone (monte l’interface web) ou sidekick (sans interface). |
SECRET_KEY | — | Requise avec l’authentification. Signe le cookie de session ; utilisez la même valeur sur chaque réplica. |
GOD_PASSWORD / ANGEL_PASSWORD / HUMAN_PASSWORD | — | Mots de passe de rôle. Définissez-en au moins un pour activer la connexion. |
COOKIE_SECURE | 1 | N’envoie le cookie de session que via HTTPS. Mettez 0 pour du http local. |
FISHERBOY_OPEN_GOD | 0 | Dev uniquement : accès ouvert en tant que dios sans connexion. Jamais en production. |
REDIS_URL | redis://fisherboy-redis:6379/0 | File + stockage des enveloppes. |
ANONIMAL_URL | — | Anonimal (à 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_TIER | 3 | Plafond d’escalade (0 statique, 1 TLS, 2 furtif, 3 navigateur). |
PROXIES | — | Pool de proxys séparés par virgule/ligne. |
MAX_JOBS_PER_MIN | 60 | Limite de débit des soumissions de jobs par IP. |
CRAWL_MAX_PAGES | 100 | Plafond strict de pages par job. |
LLM_API_BASE_URL / LLM_API_KEY / LLM_MODEL | — | Pour output_format=json (extraction par LLM). |
ALLOW_PRIVATE_TARGETS | 0 | Dev/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.