4.4 KiB
Accesso alla Rete Locale
Come accedere al server da altri dispositivi (tablet, smartphone, ecc.)
Il sistema Focolari Voting è progettato per funzionare su tablet Android collegati alla stessa rete locale del server.
1. Avvio del Server
Il server è già configurato per accettare connessioni da tutta la rete locale:
./dev.sh server
Il server si avvia su 0.0.0.0:8000, il che significa che è in ascolto su tutte le interfacce di rete.
2. Trova l'indirizzo IP del server
Sul computer che esegue il server, trova il suo indirizzo IP locale:
# Linux
ip addr show | grep "inet " | grep -v 127.0.0.1
# Oppure
hostname -I
L'output sarà qualcosa come: 192.168.1.230 (o simile, dipende dalla tua rete).
3. Accedi dal tablet/dispositivo
Sul tablet o altro dispositivo connesso alla stessa rete WiFi:
- Apri il browser (Chrome, Firefox, ecc.)
- Vai all'indirizzo:
http://192.168.1.230:8000/badge- Sostituisci
192.168.1.230con l'IP che hai trovato nel passo 2 - Mantieni la porta
:8000(o quella che hai specificato con-p) - Il frontend è servito su
/badge
- Sostituisci
4. Verifica della connettività
Test ping dal tablet
Se il tablet non si connette, verifica prima che possa "vedere" il server:
# Dal computer server
ping 192.168.1.xxx # IP del tablet
Se il ping funziona in entrambe le direzioni, il problema è probabilmente il firewall.
Firewall Linux
Se usi un firewall (ufw, firewalld, iptables), devi aprire la porta:
ufw:
sudo ufw allow 8000/tcp
sudo ufw reload
firewalld:
sudo firewall-cmd --permanent --add-port=8000/tcp
sudo firewall-cmd --reload
Verifica porte in ascolto
Per verificare che il server sia effettivamente in ascolto:
sudo ss -tlnp | grep :8000
# o
sudo netstat -tlnp | grep :8000
Dovresti vedere qualcosa come:
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 12345/python
Nota importante: Se vedi 127.0.0.1:8000 invece di 0.0.0.0:8000, significa che il server è in ascolto solo su
localhost. In questo caso, riavvia senza il parametro --host 127.0.0.1.
5. Porta personalizzata
Se la porta 8000 è già in uso o vuoi usarne un'altra:
./dev.sh server -p 9000
Poi accedi da: http://192.168.1.230:9000/badge
6. Ambiente di produzione
Per un deployment permanente su un tablet/kiosk:
- Il tablet deve avere un IP fisso (configurato nel router o nelle impostazioni WiFi)
- Il server deve avviarsi automaticamente (systemd service o simili)
- Il browser del tablet può essere configurato in modalità kiosk per avviare automaticamente l'URL
Risoluzione problemi comuni
Problema: "Impossibile raggiungere il sito"
Cause possibili:
- ❌ Il server non è in esecuzione → verifica con
ps aux | grep python - ❌ Firewall attivo → segui le istruzioni sopra per aprire la porta
- ❌ IP sbagliato → ricontrolla l'IP del server con
hostname -I - ❌ Tablet non sulla stessa rete → connetti alla stessa WiFi del server
- ❌ Server in ascolto solo su localhost → NON usare
--host 127.0.0.1
Problema: "Server non raggiungibile" (pagina di errore del frontend)
Il frontend ha una pagina di errore che effettua un ping automatico. Se vedi questa pagina:
- Il frontend è caricato correttamente
- Ma l'API backend non risponde
- Verifica che il backend sia effettivamente in esecuzione
- Controlla la console JavaScript per errori CORS
Problema: CORS errors nella console
Non dovrebbero verificarsi, il backend ha CORS abilitato per *. Se li vedi:
- Verifica che il backend sia avviato correttamente
- Controlla che non ci siano proxy/firewall intermedi che modificano le richieste
Note per deployment reale
- Il sistema è stato testato su rete locale privata
- Non esporre direttamente il server su Internet senza autenticazione aggiuntiva
- In produzione, considera di usare HTTPS con un reverse proxy (nginx/caddy)
- Il default
0.0.0.0è sicuro in una rete locale controllata, ma valuta restrizioni aggiuntive per deployment più grandi
Comandi rapidi
# Trova IP del server
hostname -I
# Avvia server (accessibile da rete)
./dev.sh server
# Avvia server su porta custom
./dev.sh server -p 9000
# Avvia server SOLO su localhost (NON accessibile da rete)
./dev.sh server --host 127.0.0.1
# Verifica porte in ascolto
sudo ss -tlnp | grep python
# Apri porta nel firewall (ufw)
sudo ufw allow 8000/tcp