Документация
Быстрый старт + описание функций по разделам и устройствам (постоянно дополняется)
Установка и удаление
В этой статье подробно описано, как установить, обновить и удалить панель SSH Everywhere; особое внимание уделено тому, «как удалить панель, если каталог установки был изменён», и деталям формата команд (пробелы, кавычки).
1. Установка (одной командой)
Выполните на Linux-сервере с публичным IP:
curl -fsSL https://ssheverywhere.com/install.sh | bash
Скрипт автоматически выполнит: определение системы → установку зависимостей (Python3 / venv / pip / git / curl) → скачивание кода → создание виртуального окружения → установку зависимостей Python → регистрацию и запуск сервиса systemd.
Поддерживаются Debian / Ubuntu / CentOS / Rocky / AlmaLinux / Fedora / WSL (без systemd автоматически используется фоновый запуск).
Параметры установки
| Параметр | Описание | Пример |
|---|---|---|
--lang <код> | Язык подсказок + язык панели по умолчанию (по умолчанию определяется автоматически по системной локали; также принимается номер 1-16) | --lang ja |
--dir <каталог> | Каталог установки (по умолчанию /opt/ssh-everywhere; если запись невозможна, автоматически используется ~/ssh-everywhere с пояснением в выводе) | --dir /opt/my-panel |
--port <порт> | Порт панели (по умолчанию 5501) | --port 8080 |
--ascii | Принудительный вывод только ASCII-символов ([ok] / [..] / [!] / [x]), никаких искажений в любом терминале | --ascii |
--unicode | Принудительный вывод символов Unicode (✓ ⟳ ⚠️ ❌); в среде UTF-8 это режим по умолчанию | --unicode |
--yes / -y | Автоматическое подтверждение при обновлении, без интерактива | --yes |
Поддерживаемые языковые коды (16)
| Код | Язык | Код | Язык | Код | Язык | Код | Язык |
|---|---|---|---|---|---|---|---|
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 | हिन्दी |
Если --lang не передан, язык определяется автоматически по системной локали (например, LANG=ja_JP.UTF-8 → японские подсказки). Если локаль сервера или терминала не UTF-8 (в облегчённых облачных образах часто LANG=C), скрипт автоматически переключается на чистые ASCII-символы [ok], а при не указанном явно языке ещё и возвращает текст подсказок на английский, объясняя причину в начале — это делается, чтобы избежать любых искажений. Чтобы принудительно включить свой язык, используйте: --lang xx --unicode.
При передаче параметров через конвейер нужно добавить bash -s --:
# Японские подсказки + японская панель curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ja # Русские подсказки + свой каталог и порт curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ru --dir /opt/my-panel --port 8080 # Старый терминал / терминал GBK боится искажений: чисто ASCII-вывод (китайские подсказки + символы [ok]) curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang zh --ascii # Арабский (интерфейс RTL) curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ar
Можно также сначала скачать, а затем запустить (интерактивно, по шагам спросит язык, каталог и подтверждение обновления):
curl -fsSL https://ssheverywhere.com/install.sh -o install.sh && bash install.sh
> В крупных облаках (Tencent Cloud / Alibaba Cloud) вход root по умолчанию отключён. Явно переданный --dir имеет приоритет; только если у текущего пользователя нет прав на запись в этот каталог, скрипт автоматически переключится на вашу директорию HOME (~/ssh-everywhere) и явно сообщит в выводе, «какой каталог вы передали, почему он был заменён и что для установки туда нужно запускать от root».
2. Обновление
Достаточно снова выполнить команду установки: в скрипт встроена проверка версии, и при появлении новой версии он предложит обновление (данные сохраняются, всё автоматически):
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --yes
--yes означает автоматическое подтверждение при обновлении, без интерактива.
3. Удаление
Удаление с каталогом по умолчанию (интерактивно, рекомендуется)
curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh
Скрипт сначала покажет, что будет удалено, и спросит подтверждение — удаление начнётся только после ввода yes.
Неинтерактивное / скриптовое удаление
Добавьте --yes, чтобы пропустить подтверждение (проверки безопасности сохраняются):
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --yes
Параметры удаления
| Параметр | Описание |
|---|---|
--dir <каталог> | Каталог установки (по умолчанию /opt/ssh-everywhere, при изменённом каталоге указывать обязательно) |
--keep-data | Перед удалением сохранить data (конфигурация серверов / база данных) в tar-архив |
--yes | Подтвердить удаление в неинтерактивном режиме |
4. Как удалить панель, если каталог установки был изменён? (важно)
Если при установке каталог был изменён через --dir, при удалении нужно указать тот же --dir, иначе скрипт не найдёт каталог установки и автоматически прервётся (это защита от случайного удаления).
Путь к каталогу без пробелов
curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh --dir /opt/my-panel
Через конвейер (--dir ставится после bash -s --):
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir /opt/my-panel --yes
Путь к каталогу с пробелами
Если в имени каталога есть пробелы, нужно взять весь путь в двойные кавычки, иначе shell разобьёт путь на две части и скрипт не найдёт каталог:
bash uninstall.sh --dir "/opt/my panel"
Через конвейер так же (кавычки охватывают весь путь, а не половину):
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir "/opt/my panel" --yes
Удалить, сохранив данные
bash uninstall.sh --dir /opt/my-panel --keep-data
data (конфигурация серверов / база данных) будет сохранена в <каталог-установки>-data-backup-<метка-времени>.tar.gz, и после удаления её можно будет восстановить.
> 💡 Рекомендация: изначально избегайте пробелов в имени каталога, используйте дефис или подчёркивание (например, my-panel, my_panel) — так не придётся возиться с кавычками.
5. Безопасность
В скрипт удаления встроены три уровня защиты от случайного удаления:
1. Проверка абсолютного пути — относительные пути отклоняются.
2. Чёрный список критических системных каталогов — отклоняются /, /root, /etc, /usr, /var и др.
3. Проверка «отпечатка» каталога установки — удаление выполняется, только если одновременно существуют VERSION и app.py, иначе скрипт прерывается.
> Удаляется только сама панель; Agent на целевых серверах и устройствах не затрагивается (после удаления панели они будут отображаться как офлайн).