La dashboard non è su internet: ascolta solo su un socket del server. Per usarla si apre un tunnel SSH verso web1, con la propria chiave, e si apre il browser sul proprio PC. Chi non ha un accesso SSH a web1 non la vede nemmeno.
1. Apri il tunnel
Dal PC, con la chiave SSH caricata:
ssh -N -L 8765:/run/panel/panel.sock web1
Poi apri http://localhost:8765. Il terminale resta fermo finché il tunnel è aperto: è normale.
Se la connessione è instabile
Con 4G, 5G, FWA o hotspot la rete chiude le connessioni ferme e il tunnel sembra aperto ma le pagine non arrivano più. Il server manda un segnale ogni 30 secondi; dal PC conviene fare lo stesso e riaprire il tunnel da solo quando cade (PowerShell):
while ($true) {
ssh -N -o ServerAliveInterval=15 -o ServerAliveCountMax=3 -o ExitOnForwardFailure=yes -L 8765:/run/panel/panel.sock web1
Start-Sleep -Seconds 3
}
2. Entra

- Nome utente e password li crea un amministratore (Amministrazione → Utenti).
- La sessione dura 8 ore; il cookie non è leggibile dagli script della pagina e non parte verso altri siti.
- Ogni richiesta che modifica qualcosa porta un codice anti-falsificazione (CSRF): una pagina aperta da un altro sito non può agire al posto tuo.
- Gli accessi, riusciti e falliti, finiscono nel registro.
3. Orientati
A sinistra il menu: Siti e Backup; sotto Server lo stato del server, la sicurezza, la Storage Box e il registro; sotto Amministrazione gli utenti (solo per gli amministratori). In alto a destra il tuo nome, il ruolo ed Esci. Il menu si riduce a icone con il pulsante in alto a sinistra. Tutte le date sono in UTC, nel formato AAAA-MM-GG HH:MM.

Il tunnel di un collaboratore
Chi non amministra il server entra con una chiave che apre solo il tunnel verso la dashboard: niente terminale, file o altri servizi del server. La chiave la dà un amministratore dalla pagina Utenti, senza entrare nel server.

- Collaboratore, nel Terminale del Mac: crea la chiave con
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/web1_dashboard, scegli una passphrase e manda all’amministratore solo il file~/.ssh/web1_dashboard.pub. Il file senza.pubè la chiave privata e non lascia mai il Mac. - Amministratore: in Utenti crea l’utente del pannello, se non c’è; nella colonna Stato il collegamento nessun tunnel SSH apre la pagina del tunnel. Incolla la chiave, Salva la chiave e manda al collaboratore il riquadro Da mandare a … (c’è il bottone per copiarlo).
- Collaboratore: aggiungi le righe ricevute a
~/.ssh/config; la prima voltassh-add --apple-use-keychain ~/.ssh/web1_dashboard(la passphrase la ricorda il Portachiavi); poissh -N web1e, nel browser,http://127.0.0.1:8765. Al primo collegamento controlla che l’impronta del server sia quella scritta nel riquadro: se è diversa, fermati e avvisa.
Una chiave nuova sostituisce quella di prima; Togli la chiave chiude subito i tunnel aperti di quell’utente, e disattivarlo toglie anche la chiave. Con Linux e Windows valgono le stesse righe: quella del Portachiavi gli altri sistemi la saltano.
Utenti da shell
Se serve (per esempio per riattivare un amministratore rimasto chiuso fuori), gli utenti si gestiscono anche sul server, come root:
docker exec panel python -m app.users crea <nome> amministratore|riserva|lettore
docker exec panel python -m app.users permessi <nome> [categoria …]
docker exec panel python -m app.users password <nome>
docker exec panel python -m app.users disattiva|riattiva <nome>
docker exec panel python -m app.users elimina <nome>
docker exec panel python -m app.users elenco
La password generata si vede una volta sola: va subito nel password manager. Chi se ne va si disattiva; un utente disattivato si può poi eliminare per sempre, e nel registro le sue operazioni restano con il suo nome.