Documentation
Démarrage rapide + description des fonctionnalités module par module et appareil par appareil (mise à jour continue)
Installation et désinstallation
Cet article détaille l'installation, la mise à niveau et la désinstallation du panneau SSH Everywhere, en insistant sur « comment désinstaller après avoir modifié le répertoire d'installation » ainsi que sur les détails de format des commandes (espaces, guillemets).
1. Installation (une seule ligne de commande)
À exécuter sur un serveur Linux doté d'une IP publique :
curl -fsSL https://ssheverywhere.com/install.sh | bash
Le script effectue automatiquement : détection du système → installation des dépendances (Python3 / venv / pip / git / curl) → téléchargement du code → création de l'environnement virtuel → installation des dépendances Python → enregistrement et démarrage du service systemd.
Distributions prises en charge : Debian / Ubuntu / CentOS / Rocky / AlmaLinux / Fedora / WSL (bascule automatique en exécution en arrière-plan en l'absence de systemd).
Paramètres d'installation
| Paramètre | Description | Exemple |
|---|---|---|
--lang <code> | Langue des messages + langue par défaut du panneau (détection automatique selon le locale du système par défaut ; accepte aussi le numéro 1-16) | --lang ja |
--dir <répertoire> | Répertoire d'installation (par défaut /opt/ssh-everywhere ; s'il n'est pas accessible en écriture, repli automatique sur ~/ssh-everywhere avec explication dans la sortie) | --dir /opt/my-panel |
--port <port> | Port du panneau (par défaut 5501) | --port 8080 |
--ascii | Force une sortie en symboles ASCII purs ([ok] / [..] / [!] / [x]) : aucun caractère illisible dans n'importe quel terminal | --ascii |
--unicode | Force une sortie en symboles Unicode (✓ ⟳ ⚠️ ❌) ; en environnement UTF-8, c'est la valeur par défaut | --unicode |
--yes / -y | Confirmation automatique lors de la mise à niveau, sans interaction | --yes |
Codes de langue pris en charge (16)
| Code | Langue | Code | Langue | Code | Langue | Code | Langue |
|---|---|---|---|---|---|---|---|
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 | हिन्दी |
Sans --lang, la détection se fait automatiquement selon le locale du système (par exemple LANG=ja_JP.UTF-8 → messages en japonais). Lorsque le locale du serveur ou du terminal n'est pas UTF-8 (les images allégées des grands fournisseurs cloud utilisent souvent LANG=C), le script bascule automatiquement sur des symboles ASCII purs [ok] ; si la langue n'est pas indiquée explicitement, il repasse aussi les messages en anglais et explique la raison au début — le but étant d'éviter tout caractère illisible. Pour forcer l'affichage de votre langue, utilisez : --lang xx --unicode.
Pour passer des paramètres via un pipe, il faut ajouter bash -s -- :
# Messages en japonais + panneau en japonais curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ja # Messages en russe + répertoire et port personnalisés curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ru --dir /opt/my-panel --port 8080 # Terminaux anciens / GBK sujets aux caractères illisibles : sortie ASCII pure (messages en chinois + symboles [ok]) curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang zh --ascii # Arabe (interface RTL) curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ar
Vous pouvez aussi le télécharger d'abord puis l'exécuter (mode interactif : il demande successivement la langue, le répertoire et la confirmation de mise à niveau) :
curl -fsSL https://ssheverywhere.com/install.sh -o install.sh && bash install.sh
> Les grands fournisseurs cloud (Tencent Cloud / Alibaba Cloud) désactivent par défaut la connexion root. Le --dir indiqué explicitement est respecté en priorité ; ce n'est que si l'utilisateur courant n'a pas le droit d'écriture sur ce répertoire que le script bascule automatiquement vers votre répertoire HOME (~/ssh-everywhere) et précise clairement dans la sortie « quel répertoire vous avez indiqué, pourquoi il a été remplacé, et qu'il faut exécuter en root pour installer à cet endroit ».
2. Mise à niveau
Il suffit de relancer la commande d'installation : le script intègre une détection de version et signale la mise à niveau lorsqu'une nouvelle version existe (données conservées, entièrement automatique) :
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --yes
--yes indique une confirmation automatique lors de la mise à niveau, sans interaction.
3. Désinstallation
Désinstallation du répertoire par défaut (interactive, recommandée)
curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh
Le script liste d'abord ce qui va être désinstallé et demande confirmation : il faut saisir yes pour exécuter.
Désinstallation non interactive / scriptée
Ajoutez --yes pour sauter la confirmation (les contrôles de sécurité restent actifs) :
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --yes
Paramètres de désinstallation
| Paramètre | Description |
|---|---|
--dir <répertoire> | répertoire d'installation (/opt/ssh-everywhere par défaut, obligatoire si le répertoire a été modifié) |
--keep-data | sauvegarder data (configuration des serveurs / base de données) dans une archive tar avant la désinstallation |
--yes | confirmer la désinstallation en mode non interactif |
4. Comment désinstaller après avoir modifié le répertoire d'installation ? (point important)
Si vous avez utilisé --dir à l'installation pour changer le répertoire, vous devez indiquer le même --dir à la désinstallation, sinon le script ne trouve pas le répertoire d'installation et s'arrête automatiquement (c'est une protection, pour éviter une suppression accidentelle).
Chemin de répertoire sans espace
curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh --dir /opt/my-panel
Via un pipe (--dir après bash -s --) :
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir /opt/my-panel --yes
Chemin de répertoire contenant des espaces
Si le nom du répertoire contient des espaces, vous devez entourer tout le chemin de guillemets doubles, sinon le shell découpe le chemin en deux et le script ne trouve pas le répertoire :
bash uninstall.sh --dir "/opt/my panel"
Idem via un pipe (les guillemets entourent tout le chemin, n'en mettez pas seulement une moitié) :
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir "/opt/my panel" --yes
Conserver les données avant de désinstaller
bash uninstall.sh --dir /opt/my-panel --keep-data
data (configuration des serveurs / base de données) sera sauvegardé dans <répertoire d'installation>-data-backup-<horodatage>.tar.gz, récupérable après la désinstallation.
> 💡 Conseil : évitez d'utiliser des espaces dans le nom du répertoire dès l'installation et préférez un tiret ou un souligné (comme my-panel, my_panel) : cela épargne bien des soucis de guillemets.
5. Remarques de sécurité
Le script de désinstallation intègre trois niveaux de protection pour éviter les suppressions accidentelles :
1. Validation du chemin absolu —— les chemins relatifs sont refusés.
2. Liste noire des répertoires critiques du système —— /, /root, /etc, /usr, /var, etc. sont refusés.
3. Vérification de l'empreinte du répertoire d'installation —— VERSION et app.py doivent être présents tous les deux pour que la suppression ait lieu, sinon le script s'arrête.
> La désinstallation ne supprime que le panneau lui-même : les Agents présents sur les serveurs / appareils cibles ne sont pas affectés (ils apparaîtront hors ligne une fois le panneau supprimé).