Documentazione
Avvio rapido + descrizione di ogni funzione per ogni sezione e dispositivo (in continuo aggiornamento)
Installazione e disinstallazione
Questo documento spiega in dettaglio come installare, aggiornare e disinstallare il pannello SSH Everywhere, con particolare attenzione a «come disinstallare dopo aver cambiato la directory di installazione» e ai dettagli di formato nei comandi (spazi, virgolette).
1. Installazione (un solo comando)
Esegui su un server Linux con IP pubblico:
curl -fsSL https://ssheverywhere.com/install.sh | bash
Lo script esegue automaticamente: rilevamento del sistema → installazione delle dipendenze (Python3 / venv / pip / git / curl) → download del codice → creazione dell'ambiente virtuale → installazione delle dipendenze Python → registrazione e avvio del servizio systemd.
Supporta Debian / Ubuntu / CentOS / Rocky / AlmaLinux / Fedora / WSL (senza systemd passa automaticamente all'esecuzione in background).
Parametri di installazione
| Parametro | Descrizione | Esempio |
|---|---|---|
--lang <codice> | Lingua dei messaggi + lingua predefinita del pannello (per impostazione predefinita viene rilevata automaticamente dal locale di sistema; accetta anche il numero 1-16) | --lang ja |
--dir <directory> | Directory di installazione (predefinita /opt/ssh-everywhere; se non è scrivibile passa automaticamente a ~/ssh-everywhere spiegandolo nell'output) | --dir /opt/my-panel |
--port <porta> | Porta del pannello (predefinita 5501) | --port 8080 |
--ascii | Forza l'output con soli simboli ASCII ([ok] / [..] / [!] / [x]), nessun carattere illeggibile su qualsiasi terminale | --ascii |
--unicode | Forza l'output con simboli Unicode (✓ ⟳ ⚠️ ❌); in ambiente UTF-8 è già il comportamento predefinito | --unicode |
--yes / -y | Conferma automatica durante l'aggiornamento, senza interazione | --yes |
Codici lingua supportati (16)
| Codice | Lingua | Codice | Lingua | Codice | Lingua | Codice | Lingua |
|---|---|---|---|---|---|---|---|
zh | 中文 | en | English | ja | 日本語 | ko | 한국어 |
es | Español | fr | Français | de | Deutsch | ru | Русский |
pt | Português | it | Italiano | ar | العربية | tr | Türkçe |
vi | Tiếng Việt | th | ไทย | id | Bahasa Indonesia | hi | हिन्दी |
Se --lang non viene passato, la lingua viene rilevata automaticamente dal locale di sistema (ad esempio LANG=ja_JP.UTF-8 → messaggi in giapponese). Quando il locale del server o del terminale non è UTF-8 (LANG=C è comune nelle immagini cloud minimali dei grandi provider), lo script passa automaticamente ai simboli ASCII puri [ok] e, se la lingua non è specificata esplicitamente, riporta anche i testi dei messaggi in inglese spiegando il motivo all'inizio: tutto questo per evitare qualsiasi carattere illeggibile. Per forzare la tua lingua usa: --lang xx --unicode.
Per passare i parametri tramite pipe occorre aggiungere bash -s --:
# Messaggi in giapponese + pannello in giapponese curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ja # Messaggi in russo + directory e porta personalizzate curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ru --dir /opt/my-panel --port 8080 # Terminale vecchio / terminale GBK a rischio di caratteri illeggibili: output solo ASCII (messaggi in cinese + simboli [ok]) curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang zh --ascii # Arabo (interfaccia RTL) curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ar
Puoi anche scaricarlo prima e poi eseguirlo (modalità interattiva: chiederà passo passo lingua, directory e conferma dell'aggiornamento):
curl -fsSL https://ssheverywhere.com/install.sh -o install.sh && bash install.sh
> Nei grandi cloud (Tencent Cloud / Alibaba Cloud) l'accesso root è disattivato per impostazione predefinita. Il --dir passato esplicitamente ha la priorità; solo se l'utente corrente non ha i permessi di scrittura su quella directory lo script passa automaticamente alla tua directory HOME (~/ssh-everywhere) e indica chiaramente nell'output «quale directory hai passato, perché è stata sostituita e che per installare lì devi eseguire come root».
2. Aggiornamento
Basta rieseguire il comando di installazione: lo script include il controllo di versione e, se trova una nuova versione, propone l'aggiornamento (dati conservati, tutto automatico):
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --yes
--yes conferma automaticamente l'aggiornamento, senza interazione.
3. Disinstallazione
Disinstallazione nella directory predefinita (interattiva, consigliata)
curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh
Lo script elenca prima cosa verrà rimosso e chiede conferma: solo digitando yes procede.
Disinstallazione non interattiva / in script
Aggiungi --yes per saltare la conferma (i controlli di sicurezza restano attivi):
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --yes
Parametri di disinstallazione
| Parametro | Descrizione |
|---|---|
--dir <directory> | directory di installazione (predefinita /opt/ssh-everywhere, obbligatoria se l'hai cambiata) |
--keep-data | prima di disinstallare, salva data (configurazione server / database) in un archivio tar |
--yes | conferma la disinstallazione in modalità non interattiva |
4. Come disinstallare se hai cambiato la directory di installazione? (punto chiave)
Se in fase di installazione hai cambiato la directory con --dir, in fase di disinstallazione devi indicare lo stesso --dir, altrimenti lo script non trova la directory di installazione e si interrompe automaticamente (è una protezione di sicurezza per evitare cancellazioni accidentali).
Percorso senza spazi
curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh --dir /opt/my-panel
Modalità pipe (--dir dopo bash -s --):
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir /opt/my-panel --yes
Percorso con spazi
Se il nome della directory contiene spazi, devi racchiudere l'intero percorso tra virgolette doppie, altrimenti la shell spezza il percorso in due parti e lo script non trova la directory:
bash uninstall.sh --dir "/opt/my panel"
Stessa cosa in modalità pipe (le virgolette racchiudono tutto il percorso, non solo una parte):
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir "/opt/my panel" --yes
Conservare i dati prima di disinstallare
bash uninstall.sh --dir /opt/my-panel --keep-data
data (configurazione server / database) viene salvato in <directory-di-installazione>-data-backup-<timestamp>.tar.gz, recuperabile dopo la disinstallazione.
> 💡 Consiglio: evita gli spazi nei nomi di directory già in fase di installazione e usa trattini o underscore (come my-panel, my_panel): ti risparmierai i fastidi delle virgolette.
5. Note di sicurezza
Lo script di disinstallazione include tre livelli di protezione per evitare cancellazioni accidentali:
1. Verifica del percorso assoluto —— rifiuta i percorsi relativi.
2. Blacklist delle directory critiche di sistema —— rifiuta /, /root, /etc, /usr, /var ecc.
3. Verifica dell'impronta della directory di installazione —— elimina solo se sono presenti sia VERSION sia app.py, altrimenti si interrompe.
> La disinstallazione rimuove solo il pannello stesso; gli Agent sui server / dispositivi di destinazione non sono toccati (dopo la rimozione del pannello risulteranno offline).