fantasta
v0.3.2
Published
Asta di Fantacalcio in LAN senza server: avvia la regia come vera app desktop e i partecipanti si collegano dal telefono. Nessuna installazione richiesta.
Maintainers
Readme
Fantasta — avvia l'asta dal terminale
Asta di Fantacalcio giocata in LAN senza server. Questo comando apre la vera app desktop sul tuo computer; i partecipanti si collegano dal telefono (o da qualunque browser) sulla tua rete locale, senza installare nulla.
npx fantastaNiente installer, niente avvisi di sicurezza: il binario Electron incluso nel pacchetto è firmato da GitHub, quindi non c'è Gatekeeper da aggirare.
Cosa succede
- Al primo avvio su macOS viene preparata una vera Fantasta.app (nome,
icona e identificatore corretti) dentro
~/.fantasta/— pochi secondi, una volta sola; - si apre la finestra dell'app desktop (regia) con l'icona e il nome di Fantasta nel Dock;
- si avvia il server SQLite/LAN locale (porta
47821); - si avvia il renderer della regia (porta
47822), raggiungibile anche dal browser dei partecipanti; - il terminale torna subito libero: l'app gira da sola, chiudi la finestra
per fermare tutto e disconnettere i partecipanti (i log finiscono in
~/.fantasta/desktop.log).
I partecipanti si collegano con il QR code mostrato durante la creazione della lega (o col link) e seguono l'asta dal telefono. Serve una sola connessione: quella del PC che gestisce l'asta.
Modalità browser (opzionale)
Se preferisci la regia nel browser di default invece della finestra:
npx fantasta --browserRequisiti
- Node.js 22 o superiore (il database usa
node:sqlite, incluso nel runtime). - Al primo avvio npm scarica anche il binario Electron (~120 MB, una volta sola).
Dove vengono salvati i dati
- Tutti i dati (database, sessione admin, log e l'app
Fantasta.appsu macOS) stanno in~/.fantasta/(FANTASTA_DATA_DIRper cambiare cartella). - Finestra desktop:
fantasta.dbin~/.fantasta/(oFANTASTA_DATABASE_PATH). - Modalità browser / sessioni:
~/.fantasta/(fantasta.db,admin-session.txt).
Opzioni (variabili d'ambiente)
Tutte opzionali, se non impostate valgono i default qui sotto.
| Variabile | Default | Descrizione |
| --- | --- | --- |
| FANTASTA_PORT | 47821 | Porta del server locale (SQLite/LAN) |
| FANTASTA_RENDERER_PORT | 47822 | Porta del renderer (regia e partecipanti) |
| FANTASTA_DATABASE_PATH | vedi sopra | Percorso del database |
| FANTASTA_DATA_DIR | ~/.fantasta | Cartella dei dati (modalità browser) |
| FANTASTA_BROWSER | — | 1 equivale a --browser |
Esempio con porte diverse:
FANTASTA_PORT=49001 FANTASTA_RENDERER_PORT=49002 npx fantastaPerché npx e non l'installer?
L'"app desktop" di Fantasta è in realtà due processi Node (server LAN e
renderer) avvolti da Electron. Il pacchetto npm include tutto e lancia il
binario Electron ufficiale, firmato da GitHub: per questo non c'è alcun
avviso di sicurezza all'apertura su macOS, Windows o Linux (niente
Gatekeeper da aggirare). Su macOS al primo avvio il pacchetto assembla una
vera Fantasta.app (copia del dist Electron con nome e icona corretti): nel
Dock compare solo Fantasta, senza l'icona "exec" né quella generica di
Electron. Se preferisci una finestra "installata" a sistema, la distribuzione
installer (.dmg/.exe) resta scaricabile dalle GitHub Releases del
progetto.
Sviluppo in questo repo
Il pacchetto viene costruito a partire dagli artifact del monorepo:
# dalla radice del progetto:
npm run web:build # produce apps/web/.next/standalone (renderer)
# poi, dentro cli/:
npm publish # prepack assembla le risorse e carica il tarballPubblicare su npm
Il pacchetto assembla le risorse automaticamente con prepack:
cd cli
npm publish # esegue prepack e carica il tarballDopo il publish, dalla root del progetto va allineata la stessa versione del monorepo al prossimo tag di release.
