Installa Fisherboy
Fisherboy viene distribuito come singola immagine Docker autonoma (ghcr.io/diegoparras/fisherboy:latest).
La stessa immagine esegue l’API, il worker e l’interfaccia web opzionale; un servizio Redis fa da supporto alla
coda dei job.
Requisiti
Sezione intitolata “Requisiti”- Docker (Docker Desktop su Windows/Mac, oppure Docker Engine su Linux).
- Un servizio Redis per la coda — incluso nei file compose forniti.
- Circa 1 GB di disco per l’immagine (include Chromium per i livelli con browser).
- Non serve alcun servizio esterno per partire: senza alcun
ANONIMAL_URLimpostato, viene usato l’anonimizzatore regex integrato.
Avvio rapido (Docker Compose)
Sezione intitolata “Avvio rapido (Docker Compose)”Il percorso più veloce — standalone, con l’interfaccia web:
git clone https://github.com/diegoparras/fisherboy.gitcd fisherboycp .env.example .env # imposta SECRET_KEY + GOD/ANGEL/HUMAN_PASSWORDdocker compose -f docker-compose.standalone.yml up -d --build# → apri http://localhost:8000Il file docker-compose.standalone.yml avvia tre servizi — l’API (fisherboy-api,
sulla porta 8000), il worker (fisherboy-worker) e Redis (fisherboy-redis) — tutti su una
rete privata.
Comandi utili a seguire:
docker compose -f docker-compose.standalone.yml logs -f # segui i logdocker compose -f docker-compose.standalone.yml down # fermaEsegui l’immagine pubblicata
Sezione intitolata “Esegui l’immagine pubblicata”Non vuoi compilare? Scarica l’immagine precompilata (pubblicata da GitHub Actions):
docker pull ghcr.io/diegoparras/fisherboy:latestEseguila manualmente con un container Redis accanto:
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 è il comando predefinito dell’immagine (uvicorn app.main:app --host 0.0.0.0 --port 8000);
il worker viene avviato con python -m app.worker.
.env minimale
Sezione intitolata “.env minimale”Copia .env.example in .env e imposta almeno:
APP_MODE=standaloneSECRET_KEY=<una lunga stringa casuale>GOD_PASSWORD=<la tua password di amministratore>ANGEL_PASSWORD=<opzionale>HUMAN_PASSWORD=<opzionale>COOKIE_SECURE=0 # 0 per http://localhost locale (senza HTTPS)Primo avvio
Sezione intitolata “Primo avvio”- Avvia lo stack (
docker compose -f docker-compose.standalone.yml up -d --build). La prima compilazione richiede alcuni minuti; gli avvii successivi sono istantanei. - Apri
http://localhost:8000. - Nella schermata di login, inserisci la tua
GOD_PASSWORD.
Due modalità
Sezione intitolata “Due modalità”Fisherboy funziona in una di due modalità, scelta tramite APP_MODE. Il nucleo è identico; la modalità
decide solo se l’interfaccia web viene montata e dove viene delegata la conversione dei documenti.
standalone | sidekick | |
|---|---|---|
| Interfaccia web | sì, propria | no, headless |
| Interfaccia | UI + REST + MCP | REST + MCP |
| Uso | self-host, personale | dietro Escriba, rete interna |
Per la modalità sidekick dietro Escriba, usa docker-compose.yml, che si unisce alla rete esterna
escriba_internal per raggiungere Anonimal ed Escriba.
Principali variabili d’ambiente
Sezione intitolata “Principali variabili d’ambiente”| Variabile | Predefinito | Cosa fa |
|---|---|---|
APP_MODE | sidekick | standalone (monta l’interfaccia web) o sidekick (headless). |
SECRET_KEY | — | Obbligatoria con l’autenticazione. Firma il cookie di sessione; usa lo stesso valore su ogni replica. |
GOD_PASSWORD / ANGEL_PASSWORD / HUMAN_PASSWORD | — | Password dei ruoli. Impostane almeno una per abilitare il login. |
COOKIE_SECURE | 1 | Invia il cookie di sessione solo su HTTPS. Imposta 0 per http locale. |
FISHERBOY_OPEN_GOD | 0 | Solo per lo sviluppo: accesso aperto come dios senza login. Mai in produzione. |
REDIS_URL | redis://fisherboy-redis:6379/0 | Coda + store delle envelope. |
ANONIMAL_URL | — | Anonimal (dentro Escriba) per il NER completo. Vuoto ricade sull’anonimizzatore regex integrato. |
MAX_FETCH_TIER | 3 | Tetto di escalation (0 statico, 1 TLS, 2 stealth, 3 browser). |
PROXIES | — | Pool di proxy separati da virgola/riga. |
MAX_JOBS_PER_MIN | 60 | Limite di frequenza degli invii di job per IP. |
CRAWL_MAX_PAGES | 100 | Limite massimo di pagine per job. |
LLM_API_BASE_URL / LLM_API_KEY / LLM_MODEL | — | Per output_format=json (estrazione tramite LLM). |
ALLOW_PRIVATE_TARGETS | 0 | Solo per sviluppo/test — disabilita la protezione SSRF. Mai in produzione. |
L’elenco completo e commentato si trova in .env.example nel repository. Per Docker Desktop,
EasyPanel e il deployment in produzione, vedi docs/DEPLOY.md.