Skip to Content
Getting StartedCommunity Edition

Guida Introduttiva: Community Edition

La Community Edition (CE) di SagraFacile ti permette di eseguire l’intera piattaforma sulla tua infrastruttura locale. Questa versione è gratuita.

Panoramica

Con la Community Edition:

  • Controllo completo: i dati rimangono sulla tua infrastruttura
  • Funzionamento offline: continua a lavorare anche senza internet
  • Gratuito: disponibile per il download su sagrafacile.it/releases 

La Community Edition richiede conoscenze tecniche per l’installazione e la manutenzione. Se preferisci una soluzione gestita, considera la versione Cloud.

Modalità di Installazione

SagraFacile supporta due modalità di accesso, che scegli durante la configurazione iniziale:

ModalitàRequisitiLimitazioni
Dominio pubblico con HTTPSUn dominio gestito su CloudflareNessuna — configurazione completa e pienamente supportata
Rete locale / HTTPSolo una rete Wi-Fi o LAN comuneFunzionalità camera e QR scanner non disponibili; configurazione best-effort

La modalità rete locale (HTTP) non è la configurazione raccomandata. È tecnicamente più semplice da avviare, ma le restrizioni di sicurezza del browser su pagine non-HTTPS bloccano tutte le funzionalità che dipendono dalla fotocamera (scanner QR, lettura barcode, ecc.). Aggiornamenti futuri del browser potrebbero limitare ulteriori funzionalità senza preavviso.

Per un’installazione completa e pienamente supportata, usa la modalità dominio con HTTPS.

Prerequisiti

Software Richiesto

  • Docker Desktop: necessario per eseguire l’applicazione — scarica qui 
  • PowerShell: già incluso in Windows 10 e versioni successive. Necessario per gli script di configurazione
  • Un editor di testo: VS Code, Notepad++ o anche Blocco Note

Requisiti Hardware (Consigliati)

  • CPU: 2+ core
  • RAM: 4+ GB
  • Storage: 20+ GB disponibili
  • Rete: connessione Ethernet stabile (consigliata rispetto al Wi-Fi)

Requisiti di Rete (solo modalità dominio pubblico)

  • Dominio su Cloudflare: il tuo dominio deve essere gestito tramite Cloudflare per ottenere certificati SSL validi
  • Accesso al router: per configurare il DNS locale

Installazione

Scarica SagraFacile

Scarica l’ultima versione del pacchetto dalla pagina Releases  ed estrailo in una cartella (es. C:\sagrafacile).

Esegui lo Script di Configurazione

Apri il Prompt dei comandi (o PowerShell) nella cartella di SagraFacile ed esegui:

start.bat

Lo script rileva automaticamente se è il primo avvio o un avvio successivo:

  • Primo avvio: guida interattiva completa, crea il file sagrafacile_config.json
  • Avvii successivi: usa la configurazione salvata. Puoi scegliere se usarla così com’è o riconfigurare

Scegli la Modalità di Installazione

La prima scelta che lo script ti propone è la modalità di accesso:

--- Installation Mode --- How will you access SagraFacile? 1. Public domain with HTTPS (requires a domain managed on Cloudflare) 2. Local network only / HTTP (no domain or Cloudflare needed)

Scegli 2. Lo script rileva automaticamente l’indirizzo IP locale del server e te lo propone:

--- Local Network Configuration --- Enter this server's local IP address [192.168.1.10]:

Premi Invio per confermare l’IP rilevato, oppure inseriscine uno diverso. SagraFacile sarà accessibile via HTTP sulla porta 80 da tutti i dispositivi della rete.

Modalità best-effort — funzionalità limitate. Le restrizioni di sicurezza del browser su pagine HTTP bloccano tutte le funzioni che dipendono dalla fotocamera: scanner QR, lettura barcode e funzionalità simili non saranno disponibili. Aggiornamenti futuri del browser potrebbero limitare ulteriori funzionalità senza preavviso. Per un’installazione completa, usa la modalità dominio con HTTPS.

Completa la Configurazione

Indipendentemente dalla modalità scelta, lo script chiede:

CampoDescrizione
Utente PostgreSQLCredenziale database (default: sagrafacile)
Password PostgreSQLCredenziale database
Nome database(default: sagrafaciledb)
JWT SecretChiave di sicurezza — può essere generata automaticamente
Nome organizzazioneNome del tuo evento o associazione
Email adminEmail dell’amministratore principale
Password adminPassword per l’account admin

Alla fine è disponibile una sezione Configurazione Avanzata (opzionale):

CampoDescrizioneDefault
JWT IssuerIdentificatore dell’emittente del tokenSagraFacile
JWT AudienceIdentificatore del destinatario del tokenSagraFacileApp
PreOrder Polling ServiceAbilita il servizio di polling per i preordinitrue
Queue Display Customer QRMostra il QR cliente nelle pagine Display Coda pubblichefalse
Telemetria anonimaInvia statistiche anonime per migliorare il prodottotrue (abilitata)
Cloudflare EmailEmail Cloudflare (solo modalità dominio, opzionale)

Attendi l’Avvio dei Servizi

Lo script avvierà Docker Compose e tutti i servizi necessari. Al primo avvio verranno scaricate le immagini Docker (può richiedere alcuni minuti).

In modalità dominio pubblico, Caddy otterrà automaticamente un certificato SSL da Let’s Encrypt via Cloudflare DNS.

Struttura dei File

Dopo l’installazione, la cartella avrà questa struttura:

    • docker-compose.yml
    • Caddyfile
    • .env
    • sagrafacile_config.json
    • start.bat
    • start.sh
    • stop.bat
    • stop.sh
    • update.bat
    • update.sh
FileDescrizione
docker-compose.ymlConfigurazione dei servizi Docker
CaddyfileConfigurazione del reverse proxy — rigenerato automaticamente da start.* in base alla modalità scelta
.envVariabili d’ambiente — generato automaticamente da start.*
sagrafacile_config.jsonConfigurazione salvata — riletta ad ogni avvio successivo
start.*Avvia i servizi (e gestisce la configurazione al primo avvio)
stop.*Ferma i servizi
update.*Aggiorna le immagini Docker all’ultima versione

Non modificare .env o Caddyfile manualmente: vengono rigenerati dallo script start.* ad ogni avvio. Tutte le modifiche alla configurazione vanno fatte rieseguendo start.* e scegliendo l’opzione di riconfigurazione.

Accesso a SagraFacile

Una volta che i servizi sono attivi, apri il browser su qualsiasi dispositivo connesso alla rete e naviga a:

http://192.168.1.10

Sostituisci 192.168.1.10 con l’IP del server che hai configurato durante l’installazione.

Tutti i dispositivi (casse, monitor cucina, tablet camerieri) devono essere connessi alla stessa rete locale del server.

Usa le credenziali configurate durante l’installazione per effettuare il login.

Pagina di login

Gestione dei Servizi

Avviare i Servizi

Esegui start.* dalla cartella di SagraFacile:

start.bat

Se esiste già un file sagrafacile_config.json, lo script chiederà se usare la configurazione esistente o riconfigurare. Premi Invio (o digita 1) per avviare con la configurazione salvata.

Fermare i Servizi

stop.bat

Aggiornare i Servizi

Per aggiornare SagraFacile a una nuova versione:

Scarica il nuovo pacchetto

Scarica il nuovo ZIP dalla pagina Releases  ed estrailo in una cartella temporanea.

Sostituisci docker-compose.yml

Copia il file docker-compose.yml dalla cartella temporanea nella cartella di SagraFacile, sovrascrivendo quello esistente. Questo è necessario perché ogni release fissa la versione delle immagini Docker.

Esegui lo script di aggiornamento

update.bat

Lo script scarica le nuove immagini Docker e riavvia i servizi. La configurazione e i dati esistenti vengono preservati automaticamente.

Sostituisci sempre anche gli script (start.*, stop.*, update.*) dal nuovo ZIP. Le versioni minori e le patch possono includere correzioni agli script stessi — non solo alle immagini Docker.

Riconfigurare

Per modificare qualsiasi impostazione (modalità, dominio, credenziali, JWT secret, ecc.), riesegui start.* e scegli l’opzione 2 - Re-configure SagraFacile. La configurazione salvata verrà mostrata come default per ogni campo.

Visualizzare i Log

docker compose logs -f

Per visualizzare i log di un servizio specifico:

docker compose logs -f api # Log del backend docker compose logs -f frontend # Log del frontend docker compose logs -f caddy # Log del reverse proxy docker compose logs -f db # Log del database

Risoluzione Problemi

I dispositivi non riescono a connettersi

Verifica che:

  1. Tutti i dispositivi siano sulla stessa rete locale del server
  2. Il firewall del server non blocchi la porta 80
  3. L’IP del server non sia cambiato — assegna un IP statico al server sul router

Il certificato SSL non viene ottenuto (solo modalità dominio)

Se Caddy non riesce a ottenere il certificato SSL, verifica che:

  • Il record DNS su Cloudflare punti correttamente al tuo IP pubblico
  • L’API Token di Cloudflare sia valido e abbia i permessi corretti (Zone:DNS:Edit)

Controlla i log di Caddy per maggiori dettagli:

docker compose logs -f caddy

Il database non si avvia

Se il database non si avvia correttamente:

docker compose logs -f db

In caso di problemi persistenti, puoi ricreare il volume del database (perderai tutti i dati):

docker compose down -v docker compose up -d

Il comando docker compose down -v elimina tutti i dati del database. Usalo solo se sei sicuro di voler ricominciare da zero.

Impossibile accedere — credenziali non valide o account admin non creato

Se dopo l’installazione il login non funziona, le cause più comuni sono:

  • Le credenziali inserite durante il setup sono quelle di accesso. L’email e la password che hai configurato in start.* sono il tuo account amministratore. Se non ricordi quali hai usato, aprila cartella di installazione e controlla il file sagrafacile_config.json — i campi INITIAL_ADMIN_EMAIL e INITIAL_ADMIN_PASSWORD contengono le credenziali configurate.
  • La password è troppo semplice. L’applicazione richiede una password con almeno una lettera maiuscola, un numero e un simbolo (es. MiaPass1!). Se hai inserito una password semplice, l’account potrebbe non essere stato creato.
  • Il setup è stato interrotto prima dei prompt delle credenziali. In questo caso il database è stato inizializzato senza un account admin.

Soluzione: reset completo e nuovo setup

I comandi seguenti eliminano tutti i dati del database. Usali solo se stai ricominciando da zero.

Apri PowerShell nella cartella di SagraFacile ed esegui:

docker compose down docker volume rm sagrafacile_sagrafacile_db_data .\start.bat

Lo script start.* rileverà la configurazione esistente e chiederà se usarla o riconfigurarla. Scegli 2 - Re-configure per impostare nuove credenziali, oppure premi Invio per usare la configurazione salvata. Al successivo avvio, le credenziali verranno ricreate nel database pulito.

Python 3 non trovato (macOS / Linux)

Se lo script start.sh restituisce Missing required command: python3, installa Python 3:

brew install python3

Errore di migrazione database all’aggiornamento a v2.6.0

Se dopo aver aggiornato all’ultima versione l’API non si avvia e nei log compare un errore simile a:

23503: insert or update on table "AdAreaAssignments" violates foreign key constraint "FK_AdAreaAssignments_OrganizationMediaAssets_MediaAssetId"

si tratta di un problema di dati: esistono assegnazioni pubblicitarie (AdAreaAssignments) che puntano a file multimediali eliminati in precedenza. La migrazione non riesce ad aggiungere il vincolo di integrità referenziale finché questi record orfani sono presenti.

Soluzione: accedi al database e rimuovi i record orfani, poi riavvia i servizi.

# Connettiti al database docker compose exec db psql -U <db_user> <db_name> # Rimuovi i record orfani (nessuna perdita di dati operativi) DELETE FROM "AdAreaAssignments" WHERE "AdMediaItemId" IS NOT NULL AND "AdMediaItemId" NOT IN (SELECT "Id" FROM "AdMediaItems"); # Esci da psql \q
# Riavvia i servizi — la migrazione ora andrà a buon fine docker compose restart api

Questo problema si verifica solo se in passato sono stati eliminati file dalla libreria multimediale senza rimuovere le relative assegnazioni alle aree. Non comporta nessuna perdita di dati operativi (ordini, menu, eventi).

Backup e Manutenzione

Backup del Database

I dati del database sono salvati in un volume Docker. Per fare un backup:

docker compose exec db pg_dump -U postgres sagrafacile > backup.sql

Ripristino del Database

Per ripristinare da un backup:

docker compose exec -T db psql -U postgres sagrafacile < backup.sql

Backup della Configurazione

Il file sagrafacile_config.json contiene tutta la configurazione dell’installazione. Conservane una copia in un posto sicuro, specialmente il JWT Secret: perderlo richiede la riconfigurazione completa e il logout forzato di tutti gli utenti.

Prossimi Passi

Dopo aver completato l’installazione:

Last updated on