# Cloudflare Tunnel — Accesso HTTPS Pubblico alla Dashboard

## Scenario
Kuki accede da **PC Windows aziendale** con firewall che blocca porte non standard (8080).  
Tailscale non basta perché il firewall aziendale blocca anche la porta 8080 via Tailscale IP.

**Soluzione:** Tunnel Cloudflare temporaneo (trycloudflare) → URL HTTPS pubblico.

## Prerequisiti
- Server HTTP su `localhost:8080` già attivo (verificare con `ss -tlnp | grep 8080`)
- Connessione internet su questa macchina

## Setup (prima volta)

```bash
# Scarica e installa cloudflared in /tmp/
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 \
  -o /tmp/cloudflared && chmod +x /tmp/cloudflared
```

## Attivazione tunnel

```python
# Da Hermes: avvia tunnel in background
terminal(
    background=True,
    command="/tmp/cloudflared tunnel --url http://localhost:8080"
)

# Aspetta ~10 secondi, poi leggi l'URL dal log
process(action="log", session_id="<session_id>")
# Nel log cercare: "https://<parole-casuali>.trycloudflare.com"
```

## URL finale da dare a Kuki

```
https://<hash>.trycloudflare.com/emma-dashboard.html
https://<hash>.trycloudflare.com/ticket-view.html
```

## Limiti NOTI (da comunicare a Kuki)

1. **L'URL CAMBIA OGNI VOLTA** che il tunnel viene riavviato (processo terminato, sistema riavviato, crash)
2. Cloudflared non è installato permanentemente (sta in `/tmp/`)
3. Non c'è uptime garantito per tunnel trycloudflare (account-less)
4. **Soluzione definitiva:** named tunnel con dominio Cloudflare — servono:
   - Un account Cloudflare
   - Un dominio registrato su Cloudflare
   - Configurare `cloudflared tunnel create <nome>` + DNS

## Debug

Se il tunnel non parte:
- `ls -la /tmp/cloudflared` — esiste?
- `curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/emma-dashboard.html` — server HTTP vivo?
- Controllare che la porta 8080 non sia già occupata: `ss -tlnp | grep 8080`
