Salta ai contenuti

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.

  • 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_URL impostato, viene usato l’anonimizzatore regex integrato.

Il percorso più veloce — standalone, con l’interfaccia web:

Terminal window
git clone https://github.com/diegoparras/fisherboy.git
cd fisherboy
cp .env.example .env # imposta SECRET_KEY + GOD/ANGEL/HUMAN_PASSWORD
docker compose -f docker-compose.standalone.yml up -d --build
# → apri http://localhost:8000

Il 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:

Terminal window
docker compose -f docker-compose.standalone.yml logs -f # segui i log
docker compose -f docker-compose.standalone.yml down # ferma

Non vuoi compilare? Scarica l’immagine precompilata (pubblicata da GitHub Actions):

Terminal window
docker pull ghcr.io/diegoparras/fisherboy:latest

Eseguila manualmente con un container Redis accanto:

Terminal window
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 è 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.

Copia .env.example in .env e imposta almeno:

APP_MODE=standalone
SECRET_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)
  1. Avvia lo stack (docker compose -f docker-compose.standalone.yml up -d --build). La prima compilazione richiede alcuni minuti; gli avvii successivi sono istantanei.
  2. Apri http://localhost:8000.
  3. Nella schermata di login, inserisci la tua GOD_PASSWORD.

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.

standalonesidekick
Interfaccia websì, propriano, headless
InterfacciaUI + REST + MCPREST + MCP
Usoself-host, personaledietro 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.

VariabilePredefinitoCosa fa
APP_MODEsidekickstandalone (monta l’interfaccia web) o sidekick (headless).
SECRET_KEYObbligatoria con l’autenticazione. Firma il cookie di sessione; usa lo stesso valore su ogni replica.
GOD_PASSWORD / ANGEL_PASSWORD / HUMAN_PASSWORDPassword dei ruoli. Impostane almeno una per abilitare il login.
COOKIE_SECURE1Invia il cookie di sessione solo su HTTPS. Imposta 0 per http locale.
FISHERBOY_OPEN_GOD0Solo per lo sviluppo: accesso aperto come dios senza login. Mai in produzione.
REDIS_URLredis://fisherboy-redis:6379/0Coda + store delle envelope.
ANONIMAL_URLAnonimal (dentro Escriba) per il NER completo. Vuoto ricade sull’anonimizzatore regex integrato.
MAX_FETCH_TIER3Tetto di escalation (0 statico, 1 TLS, 2 stealth, 3 browser).
PROXIESPool di proxy separati da virgola/riga.
MAX_JOBS_PER_MIN60Limite di frequenza degli invii di job per IP.
CRAWL_MAX_PAGES100Limite massimo di pagine per job.
LLM_API_BASE_URL / LLM_API_KEY / LLM_MODELPer output_format=json (estrazione tramite LLM).
ALLOW_PRIVATE_TARGETS0Solo 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.

Leggi la documentazione