165 lines
4.4 KiB
Markdown
165 lines
4.4 KiB
Markdown
# 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:
|
|
|
|
```bash
|
|
./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:
|
|
|
|
```bash
|
|
# 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**:
|
|
|
|
1. Apri il browser (Chrome, Firefox, ecc.)
|
|
2. Vai all'indirizzo: `http://192.168.1.230:8000`
|
|
- Sostituisci `192.168.1.230` con l'IP che hai trovato nel passo 2
|
|
- Mantieni la porta `:8000` (o quella che hai specificato con `-p`)
|
|
|
|
### 4. Verifica della connettività
|
|
|
|
#### Test ping dal tablet
|
|
|
|
Se il tablet non si connette, verifica prima che possa "vedere" il server:
|
|
|
|
```bash
|
|
# 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:**
|
|
|
|
```bash
|
|
sudo ufw allow 8000/tcp
|
|
sudo ufw reload
|
|
```
|
|
|
|
**firewalld:**
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
./dev.sh server -p 9000
|
|
```
|
|
|
|
Poi accedi da: `http://192.168.1.230:9000`
|
|
|
|
### 6. Ambiente di produzione
|
|
|
|
Per un deployment permanente su un tablet/kiosk:
|
|
|
|
1. Il tablet deve avere un IP fisso (configurato nel router o nelle impostazioni WiFi)
|
|
2. Il server deve avviarsi automaticamente (systemd service o simili)
|
|
3. 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:**
|
|
|
|
1. ❌ Il server non è in esecuzione → verifica con `ps aux | grep python`
|
|
2. ❌ Firewall attivo → segui le istruzioni sopra per aprire la porta
|
|
3. ❌ IP sbagliato → ricontrolla l'IP del server con `hostname -I`
|
|
4. ❌ Tablet non sulla stessa rete → connetti alla stessa WiFi del server
|
|
5. ❌ 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:
|
|
|
|
1. Il frontend è caricato correttamente
|
|
2. Ma l'API backend non risponde
|
|
3. Verifica che il backend sia effettivamente in esecuzione
|
|
4. Controlla la console JavaScript per errori CORS
|
|
|
|
### Problema: CORS errors nella console
|
|
|
|
Non dovrebbero verificarsi, il backend ha CORS abilitato per `*`. Se li vedi:
|
|
|
|
1. Verifica che il backend sia avviato correttamente
|
|
2. 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
|
|
|
|
```bash
|
|
# 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
|
|
```
|