From 1dbe715067072b17c2d535e4a8e3c46b1dcaed59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9=20=D0=91=D0=BE=D0=B1?= =?UTF-8?q?=D1=8B=D1=80=D0=B5=D0=B2?= Date: Tue, 26 May 2026 22:59:14 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20=D1=80=D1=83=D1=81=D1=81=D0=BA=D0=B0?= =?UTF-8?q?=D1=8F=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20=D0=B8=20=D0=BF=D1=80=D0=BE=D0=BC=D0=BF?= =?UTF-8?q?=D1=82=D1=8B=20=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- .env.example | 8 +-- README.en.md | 31 ++++++++++++ README.md | 136 ++++++++++++++++++++++++++++----------------------- README.ru.md | 83 ------------------------------- install.sh | 44 ++++++++--------- uninstall.sh | 22 ++++----- 6 files changed, 143 insertions(+), 181 deletions(-) create mode 100644 README.en.md delete mode 100644 README.ru.md diff --git a/.env.example b/.env.example index d33a448..d7b5da5 100644 --- a/.env.example +++ b/.env.example @@ -1,17 +1,17 @@ -# Copy to /etc/default/warp-webui (install.sh creates this automatically) +# Скопируйте в /etc/default/warp-webui (install.sh создаёт файл автоматически) WARP_WEBUI_USER=warpadmin WARP_WEBUI_PASS=change-me-to-a-strong-password WARP_WEBUI_HOST=0.0.0.0 WARP_WEBUI_PORT=3030 -# SOCKS port for warp-cli proxy mode (install script asks for this) +# Порт SOCKS для режима proxy у warp-cli (задаётся при install.sh) WARP_PROXY_PORT=40000 -# Shown in client preset JSON (your server's public IP or hostname) +# Публичный IP или hostname сервера — подсказки в JSON пресетов для клиентов WARP_PUBLIC_HOST= -# Optional paths (defaults match install.sh layout) +# Необязательные пути (по умолчанию как после install.sh) # WARP_INSTALL_SCRIPT=/opt/warp-webui/scripts/warp-install-cf.sh # WARP_UNINSTALL_SCRIPT=/opt/warp-webui/scripts/warp-uninstall-cf.sh # XUI_CONFIG=/usr/local/x-ui/bin/config.json diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..4725dcd --- /dev/null +++ b/README.en.md @@ -0,0 +1,31 @@ +# WARP Web UI + +Browser control panel for **Cloudflare WARP** on Linux: connect/disconnect, WARP+, SOCKS port, optional **3x-ui** and **Amnezia** presets. + +## Quick start + +```bash +curl -fsSL https://raw.githubusercontent.com/andrey271192/WARP-Web-UI/main/install.sh | sudo bash +``` + +Interactive defaults: SOCKS `40000`, Web UI `3030`, user `warpadmin`, password (min 8 chars) → `/etc/default/warp-webui`. + +```bash +curl -fsSL https://raw.githubusercontent.com/andrey271192/WARP-Web-UI/main/uninstall.sh | sudo bash +``` + +Open `http://SERVER:PORT/` after install. Use **Install WARP** in the UI if the package is missing. + +## Security (short) + +- HTTP Basic Auth only — use HTTPS (nginx/Caddy) in production. +- Firewall the Web UI port to trusted IPs. +- Runs as root; do not expose publicly without protection. + +## Docs + +Full documentation (Russian): [README.md](README.md). + +## License + +MIT — [LICENSE](LICENSE). diff --git a/README.md b/README.md index 0361a93..43bdb47 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,44 @@ # WARP Web UI -Browser-based control panel for **Cloudflare WARP** on Linux: connect/disconnect, WARP+ license, SOCKS proxy port, and optional presets for **3x-ui** and **Amnezia Xray**. +Веб-панель для управления **Cloudflare WARP** на Linux: подключение и отключение туннеля, активация WARP+, настройка SOCKS-прокси и готовые пресеты для **3x-ui** и **Amnezia Xray**. -## Features +Документация на английском (кратко): [README.en.md](README.en.md). -- **WARP control**: Connect, disconnect, restart `warp-svc`, view status and logs -- **Account**: Registration info, apply WARP+ license key -- **Install / uninstall** `cloudflare-warp` from the UI (Debian/Ubuntu apt repo) -- **SOCKS proxy**: Set `warp-cli` proxy port (e.g. `40000` or `1024`) -- **3x-ui preset**: Add `warp-socks` outbound → `127.0.0.1:PORT` and `geosite:google` routing rule -- **Amnezia preset**: Docker bridge `172.17.0.1:11025` → host SOCKS, per-client WARP routing with friendly names +## Возможности -## Requirements +- **Управление WARP**: подключение, отключение, перезапуск `warp-svc`, просмотр статуса и логов +- **Аккаунт**: информация о регистрации, применение лицензионного ключа WARP+ +- **Установка и удаление** пакета `cloudflare-warp` прямо из браузера (репозиторий Cloudflare для Debian/Ubuntu) +- **SOCKS-прокси**: смена порта `warp-cli proxy` (часто `40000` или `1024`) +- **Пресет 3x-ui**: outbound `warp-socks` → `127.0.0.1:ПОРТ` и правило маршрутизации `geosite:google` +- **Пресет Amnezia**: мост Docker `172.17.0.1:11025` → SOCKS на хосте, маршрутизация WARP для выбранных клиентов с понятными именами -- Linux (Debian/Ubuntu recommended) -- `python3` (stdlib only — no pip packages) +## Требования + +- Linux (рекомендуется Debian/Ubuntu) +- `python3` — только стандартная библиотека, без pip - `systemd` -- Optional: `cloudflare-warp` package (can be installed via UI or `scripts/warp-install-cf.sh`) -- Optional: `docker`, `socat`, `x-ui` / Amnezia for integration presets +- По желанию: пакет `cloudflare-warp` (можно поставить из UI или скриптом `scripts/warp-install-cf.sh`) +- Для интеграций: `docker`, `socat`, панель **3x-ui** и/или **Amnezia** -## Quick start +## Быстрый старт -### One-line install +### Установка одной командой ```bash curl -fsSL https://raw.githubusercontent.com/andrey271192/WARP-Web-UI/main/install.sh | sudo bash ``` -The installer **asks interactively**: +Установщик **задаёт вопросы** (можно нажать Enter для значения по умолчанию): -| Prompt | Default | Notes | -|--------|---------|--------| -| SOCKS proxy port | `40000` | Also `1024` is common for official `cloudflare-warp` | -| Web UI port | `3030` | Open in firewall if needed | -| Admin username | `warpadmin` | HTTP Basic Auth | -| Admin password | *(required, min 8 chars)* | Stored in `/etc/default/warp-webui` (`chmod 600`) | +| Вопрос | По умолчанию | Зачем это нужно | +|--------|--------------|-----------------| +| Порт SOCKS-прокси | `40000` | Локальный порт `warp-cli` в режиме proxy; для официального `cloudflare-warp` часто берут `1024` | +| Порт веб-панели | `3030` | HTTP-порт панели; при необходимости откройте его в firewall | +| Логин администратора | `warpadmin` | HTTP Basic Auth | +| Пароль администратора | *(обязательно, не короче 8 символов)* | Сохраняется в `/etc/default/warp-webui` с правами `chmod 600` | -### Clone and install +### Установка из клона репозитория ```bash git clone https://github.com/andrey271192/WARP-Web-UI.git @@ -44,65 +46,77 @@ cd WARP-Web-UI sudo bash install.sh ``` -Open `http://YOUR_SERVER:3030/` (use the port you chose). Log in with the credentials you set. +Откройте в браузере `http://АДРЕС_СЕРВЕРА:3030/` (подставьте выбранный порт). Войдите с логином и паролем, которые указали при установке. -If WARP is not installed yet, click **Install WARP** in the UI (or run `scripts/warp-install-cf.sh` with `WARP_PROXY_PORT` set). +Если WARP ещё не установлен — нажмите **Install WARP** в интерфейсе (или выполните `scripts/warp-install-cf.sh`, задав `WARP_PROXY_PORT`). -### Uninstall +### Удаление ```bash curl -fsSL https://raw.githubusercontent.com/andrey271192/WARP-Web-UI/main/uninstall.sh | sudo bash ``` -Or from a clone: `sudo bash uninstall.sh` — stops the service, optionally removes files, config, and the `cloudflare-warp` package. +Или из каталога клона: `sudo bash uninstall.sh` — останавливает сервис, по запросу удаляет файлы приложения, конфигурацию и при желании пакет `cloudflare-warp`. -## Repository layout +## Структура репозитория ``` -app.py # Web UI + API (Python http.server) -scripts/warp-install-cf.sh # Install cloudflare-warp from Cloudflare apt repo -scripts/warp-uninstall-cf.sh # Remove cloudflare-warp package -systemd/warp-webui.service # systemd unit template -install.sh / uninstall.sh # One-command setup / teardown -.env.example # Environment variable reference +app.py # Веб-интерфейс и API (Python http.server) +scripts/warp-install-cf.sh # Установка cloudflare-warp из apt Cloudflare +scripts/warp-uninstall-cf.sh # Удаление пакета cloudflare-warp +systemd/warp-webui.service # Шаблон unit для systemd +install.sh / uninstall.sh # Установка и снятие «в одну команду» +.env.example # Справочник переменных окружения ``` -After install, files live under `/opt/warp-webui/`, config in `/etc/default/warp-webui`. +После установки файлы лежат в `/opt/warp-webui/`, настройки — в `/etc/default/warp-webui`. -## Configuration +## Настройка -See [`.env.example`](.env.example). Main variables: +Подробности — в [`.env.example`](.env.example). Основные переменные: -- `WARP_WEBUI_USER`, `WARP_WEBUI_PASS` — Basic Auth -- `WARP_WEBUI_PORT` — HTTP port (default `3030`) -- `WARP_PROXY_PORT` — SOCKS port used at install and for `warp-install` from UI -- `WARP_PUBLIC_HOST` — Public IP/hostname for client preset hints +- `WARP_WEBUI_USER`, `WARP_WEBUI_PASS` — Basic Auth для панели +- `WARP_WEBUI_PORT` — HTTP-порт (по умолчанию `3030`) +- `WARP_PROXY_PORT` — порт SOCKS при установке и при установке WARP из UI +- `WARP_PUBLIC_HOST` — публичный IP или hostname для подсказок в пресетах клиентов -Client display names for Amnezia: `/etc/warp-webui/client-aliases.json` +Понятные имена клиентов Amnezia: `/etc/warp-webui/client-aliases.json`. -## Security notes +## Интеграция с 3x-ui (по желанию) -- **HTTP Basic Auth only** — credentials are sent on every request. Prefer **HTTPS** (reverse proxy: nginx/Caddy + TLS) for production. -- **Firewall**: Expose only the Web UI port to trusted IPs (`ufw allow from TRUSTED to any port 3030`). -- **Root service**: The panel runs as root to manage `warp-cli`, systemd, and Docker. Do not expose it to the public internet without protection. -- **Secrets**: Never commit `/etc/default/warp-webui`. Rotate the admin password after install. -- WARP+ license keys are entered in the UI and passed to `warp-cli` — they are not stored in this repo. +1. Установите и подключите WARP, включите режим proxy и задайте порт SOCKS (в панели или при `install.sh`). +2. В веб-панели используйте действие пресета **3x-ui** — будет предложен outbound на `127.0.0.1:ПОРТ` и правило для `geosite:google`. +3. Убедитесь, что конфиг x-ui указывает на тот же порт, что и `WARP_PROXY_PORT`. -## API (authenticated) +Требуется установленная панель x-ui и доступ к её `config.json` (путь можно переопределить в `.env`). -| Method | Path | Description | -|--------|------|-------------| -| GET | `/` | HTML UI | -| GET | `/status`, `/registration`, `/proxy`, `/logs` | Status | -| POST | `/connect`, `/disconnect`, `/restart` | WARP control | -| POST | `/warp-install`, `/warp-uninstall` | Package install/remove | -| POST | `/proxy-port`, `/license` | SOCKS port, WARP+ key | -| POST | `/xui-preset`, `/amnezia-preset`, `/amnezia-routing` | Integration presets | +## Интеграция с Amnezia (по желанию) -## License +1. На хосте с Docker поднимите SOCKS WARP и при необходимости мост `socat` (панель может создать unit `warp-socks-bridge`). +2. В панели примените пресет **Amnezia** — маршрутизация через `172.17.0.1:11025` к SOCKS на хосте. +3. Назначайте WARP только нужным клиентам; имена удобно править в `client-aliases.json`. -MIT — see [LICENSE](LICENSE). +Нужны `docker`, контейнер Amnezia Xray и переменные `AMNEZIA_*` при нестандартных путях — см. `.env.example`. -## Russian documentation +## Безопасность -See [README.ru.md](README.ru.md). +- **Только HTTP Basic Auth** — учётные данные передаются с каждым запросом. В продакшене ставьте **HTTPS** (обратный прокси: nginx, Caddy + TLS). +- **Firewall**: открывайте порт панели только для доверенных IP, например: `ufw allow from ДОВЕРЕННЫЙ_IP to any port 3030`. +- **Права root**: панель работает от root, чтобы управлять `warp-cli`, systemd и Docker. Не выставляйте её в открытый интернет без защиты. +- **Секреты**: не коммитьте `/etc/default/warp-webui` в git. После установки смените пароль администратора. +- Ключи WARP+ вводятся в UI и передаются в `warp-cli`; в репозитории они не хранятся. + +## API (требуется авторизация) + +| Метод | Путь | Описание | +|-------|------|----------| +| GET | `/` | HTML-интерфейс | +| GET | `/status`, `/registration`, `/proxy`, `/logs` | Статус и диагностика | +| POST | `/connect`, `/disconnect`, `/restart` | Управление WARP | +| POST | `/warp-install`, `/warp-uninstall` | Установка/удаление пакета | +| POST | `/proxy-port`, `/license` | Порт SOCKS, ключ WARP+ | +| POST | `/xui-preset`, `/amnezia-preset`, `/amnezia-routing` | Пресеты интеграций | + +## Лицензия + +MIT — см. [LICENSE](LICENSE). diff --git a/README.ru.md b/README.ru.md deleted file mode 100644 index 79abcd6..0000000 --- a/README.ru.md +++ /dev/null @@ -1,83 +0,0 @@ -# WARP Web UI - -Веб-панель для управления **Cloudflare WARP** на Linux: подключение/отключение, ключ WARP+, порт SOCKS-прокси и пресеты для **3x-ui** и **Amnezia Xray**. - -## Возможности - -- **WARP**: Connect / Disconnect, перезапуск `warp-svc`, статус и логи -- **Аккаунт**: тип регистрации (Free / WARP+), применение лицензионного ключа -- **Установка и удаление** пакета `cloudflare-warp` из браузера -- **SOCKS**: смена порта `warp-cli proxy` (например `40000` или `1024`) -- **3x-ui**: outbound `warp-socks` → `127.0.0.1:ПОРТ`, маршрут `geosite:google` -- **Amnezia**: мост Docker `172.17.0.1:11025` → SOCKS на хосте, WARP только для выбранных клиентов, понятные имена - -## Требования - -- Linux (рекомендуется Debian/Ubuntu) -- `python3` (только стандартная библиотека) -- `systemd` -- По желанию: `cloudflare-warp` (ставится из UI или `scripts/warp-install-cf.sh`) -- Для пресетов: `docker`, `socat`, `x-ui` / Amnezia - -## Быстрый старт - -### Установка одной командой - -```bash -curl -fsSL https://raw.githubusercontent.com/andrey271192/WARP-Web-UI/main/install.sh | sudo bash -``` - -Скрипт **спрашивает**: - -| Вопрос | По умолчанию | Пояснение | -|--------|--------------|-----------| -| Порт SOCKS | `40000` | Часто также `1024` у официального пакета | -| Порт веб-UI | `3030` | Откройте в firewall при необходимости | -| Логин админа | `warpadmin` | HTTP Basic Auth | -| Пароль админа | *(обязательно, ≥ 8 символов)* | Файл `/etc/default/warp-webui` | - -### Клонирование - -```bash -git clone https://github.com/andrey271192/WARP-Web-UI.git -cd WARP-Web-UI -sudo bash install.sh -``` - -Откройте `http://ВАШ_СЕРВЕР:3030/`. Если WARP ещё не установлен — кнопка **Install WARP** в интерфейсе. - -### Удаление - -```bash -curl -fsSL https://raw.githubusercontent.com/andrey271192/WARP-Web-UI/main/uninstall.sh | sudo bash -``` - -Или `sudo bash uninstall.sh` из клонированного репозитория. Можно удалить только панель или также пакет `cloudflare-warp` (подтверждение в конце). - -## Структура репозитория - -- `app.py` — веб-интерфейс и API -- `scripts/warp-install-cf.sh`, `warp-uninstall-cf.sh` — установка/удаление WARP -- `systemd/warp-webui.service` — шаблон unit -- `install.sh`, `uninstall.sh` — установка и снятие «в одну кнопку» - -После установки: `/opt/warp-webui/`, настройки `/etc/default/warp-webui`. - -## Настройка - -См. [`.env.example`](.env.example). Имена клиентов Amnezia: `/etc/warp-webui/client-aliases.json`. - -## Безопасность - -- Только **Basic Auth по HTTP** — для продакшена используйте **HTTPS** (nginx/Caddy). -- **Firewall**: открывайте порт панели только для доверенных IP. -- Сервис работает от **root** (нужен для `warp-cli`, systemd, Docker). Не выставляйте панель в открытый интернет без защиты. -- Не публикуйте `/etc/default/warp-webui` и смените пароль после установки. - -## English documentation - -See [README.md](README.md). - -## Лицензия - -MIT — [LICENSE](LICENSE). diff --git a/install.sh b/install.sh index a21ce83..263c0df 100755 --- a/install.sh +++ b/install.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# WARP Web UI — one-command installer (run as root on Debian/Ubuntu) +# WARP Web UI — установка одной командой (Debian/Ubuntu, от root) set -euo pipefail REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" @@ -11,11 +11,11 @@ ALIASES_DIR="/etc/warp-webui" LOG_DIR="/var/log/warp-webui" if [[ "${EUID:-0}" -ne 0 ]]; then - echo "Run as root: sudo bash install.sh" + echo "Запустите от root: sudo bash install.sh" exit 1 fi -echo "=== WARP Web UI installer ===" +echo "=== Установка WARP Web UI ===" echo prompt() { @@ -29,32 +29,32 @@ prompt() { fi } -echo "SOCKS port: local port for warp-cli proxy mode (used by x-ui / Amnezia presets)." -echo "Common choices: 40000 (warp-offline style) or 1024 (cloudflare-warp default)." -prompt WARP_PROXY_PORT "SOCKS proxy port" "40000" +echo "Порт SOCKS: локальный порт режима proxy у warp-cli (для пресетов x-ui / Amnezia)." +echo "Частые значения: 40000 (как у warp-offline) или 1024 (по умолчанию у cloudflare-warp)." +prompt WARP_PROXY_PORT "Порт SOCKS-прокси" "40000" if ! [[ "${WARP_PROXY_PORT}" =~ ^[0-9]+$ ]] || (( WARP_PROXY_PORT < 1 || WARP_PROXY_PORT > 65535 )); then - echo "Invalid SOCKS port: ${WARP_PROXY_PORT}" + echo "Некорректный порт SOCKS: ${WARP_PROXY_PORT}" exit 1 fi -prompt WARP_WEBUI_PORT "Web UI HTTP port" "3030" +prompt WARP_WEBUI_PORT "HTTP-порт веб-панели" "3030" if ! [[ "${WARP_WEBUI_PORT}" =~ ^[0-9]+$ ]] || (( WARP_WEBUI_PORT < 1 || WARP_WEBUI_PORT > 65535 )); then - echo "Invalid Web UI port: ${WARP_WEBUI_PORT}" + echo "Некорректный порт веб-панели: ${WARP_WEBUI_PORT}" exit 1 fi -prompt WARP_WEBUI_USER "Web UI admin username" "warpadmin" +prompt WARP_WEBUI_USER "Логин администратора веб-панели" "warpadmin" while true; do - read -rsp "Web UI admin password (min 8 chars): " WARP_WEBUI_PASS + read -rsp "Пароль администратора (минимум 8 символов): " WARP_WEBUI_PASS echo if [[ "${#WARP_WEBUI_PASS}" -ge 8 ]]; then break fi - echo "Password too short. Use at least 8 characters." + echo "Пароль слишком короткий. Нужно не менее 8 символов." done -# Detect public host for client preset hints (optional) +# Публичный адрес для подсказок в пресетах клиентов (необязательно) WARP_PUBLIC_HOST="${WARP_PUBLIC_HOST:-}" if [[ -z "${WARP_PUBLIC_HOST}" ]]; then WARP_PUBLIC_HOST="$(curl -fsS --max-time 3 https://api.ipify.org 2>/dev/null || true)" @@ -64,7 +64,7 @@ if [[ -z "${WARP_PUBLIC_HOST}" ]]; then fi echo -echo "Installing to ${INSTALL_DIR} ..." +echo "Установка в ${INSTALL_DIR} ..." mkdir -p "${INSTALL_DIR}/scripts" "${ALIASES_DIR}" "${LOG_DIR}" install -m 0755 "${REPO_DIR}/app.py" "${INSTALL_DIR}/app.py" install -m 0755 "${REPO_DIR}/scripts/warp-install-cf.sh" "${INSTALL_DIR}/scripts/warp-install-cf.sh" @@ -103,17 +103,17 @@ systemctl daemon-reload systemctl enable "${SERVICE_NAME}.service" systemctl restart "${SERVICE_NAME}.service" -# Optional: open firewall for Web UI port +# По желанию: правило firewall для порта панели if command -v ufw >/dev/null 2>&1 && ufw status 2>/dev/null | grep -qi active; then ufw allow "${WARP_WEBUI_PORT}/tcp" comment 'warp-webui' || true fi echo -echo "=== Installed ===" -echo "Web UI: http://${WARP_PUBLIC_HOST}:${WARP_WEBUI_PORT}/" -echo "Login: ${WARP_WEBUI_USER} / (password you entered)" -echo "SOCKS: 127.0.0.1:${WARP_PROXY_PORT} (after WARP is installed and proxy mode enabled)" -echo "Env: ${ENV_FILE}" +echo "=== Установка завершена ===" +echo "Веб-панель: http://${WARP_PUBLIC_HOST}:${WARP_WEBUI_PORT}/" +echo "Вход: ${WARP_WEBUI_USER} / (пароль, который вы ввели)" +echo "SOCKS: 127.0.0.1:${WARP_PROXY_PORT} (после установки WARP и включения режима proxy)" +echo "Конфиг: ${ENV_FILE}" echo -echo "Next: open the Web UI and use 'Install WARP' if cloudflare-warp is not installed yet." -echo "Set proxy port in the UI or re-run install with a different WARP_PROXY_PORT in ${ENV_FILE}." +echo "Далее: откройте веб-панель и нажмите «Install WARP», если пакет cloudflare-warp ещё не установлен." +echo "Порт proxy можно сменить в UI или в ${ENV_FILE} (переменная WARP_PROXY_PORT) и перезапустить сервис." diff --git a/uninstall.sh b/uninstall.sh index a4e97e2..05def1d 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# WARP Web UI — one-command uninstaller +# WARP Web UI — удаление одной командой set -euo pipefail INSTALL_DIR="${WARP_WEBUI_INSTALL_DIR:-/opt/warp-webui}" @@ -9,11 +9,11 @@ UNIT="/etc/systemd/system/${SERVICE_NAME}.service" BRIDGE_UNIT="/etc/systemd/system/warp-socks-bridge.service" if [[ "${EUID:-0}" -ne 0 ]]; then - echo "Run as root: sudo bash uninstall.sh" + echo "Запустите от root: sudo bash uninstall.sh" exit 1 fi -echo "=== WARP Web UI uninstaller ===" +echo "=== Удаление WARP Web UI ===" if systemctl is-active --quiet "${SERVICE_NAME}.service" 2>/dev/null; then systemctl stop "${SERVICE_NAME}.service" @@ -32,19 +32,19 @@ systemctl disable warp-socks-bridge.service 2>/dev/null || true systemctl daemon-reload -read -rp "Remove application files in ${INSTALL_DIR}? [y/N]: " REMOVE_APP -if [[ "${REMOVE_APP,,}" == "y" || "${REMOVE_APP,,}" == "yes" ]]; then +read -rp "Удалить файлы приложения в ${INSTALL_DIR}? [y/N]: " REMOVE_APP +if [[ "${REMOVE_APP,,}" == "y" || "${REMOVE_APP,,}" == "yes" || "${REMOVE_APP,,}" == "д" || "${REMOVE_APP,,}" == "да" ]]; then rm -rf "${INSTALL_DIR}" fi -read -rp "Remove config ${ENV_FILE} and /etc/warp-webui/? [y/N]: " REMOVE_CFG -if [[ "${REMOVE_CFG,,}" == "y" || "${REMOVE_CFG,,}" == "yes" ]]; then +read -rp "Удалить конфиг ${ENV_FILE} и каталог /etc/warp-webui/? [y/N]: " REMOVE_CFG +if [[ "${REMOVE_CFG,,}" == "y" || "${REMOVE_CFG,,}" == "yes" || "${REMOVE_CFG,,}" == "д" || "${REMOVE_CFG,,}" == "да" ]]; then rm -f "${ENV_FILE}" rm -rf /etc/warp-webui fi -read -rp "Remove cloudflare-warp package (apt remove)? [y/N]: " REMOVE_WARP -if [[ "${REMOVE_WARP,,}" == "y" || "${REMOVE_WARP,,}" == "yes" ]]; then +read -rp "Удалить пакет cloudflare-warp (apt remove)? [y/N]: " REMOVE_WARP +if [[ "${REMOVE_WARP,,}" == "y" || "${REMOVE_WARP,,}" == "yes" || "${REMOVE_WARP,,}" == "д" || "${REMOVE_WARP,,}" == "да" ]]; then if [[ -x "${INSTALL_DIR}/scripts/warp-uninstall-cf.sh" ]]; then WARP_PROXY_PORT=1024 bash "${INSTALL_DIR}/scripts/warp-uninstall-cf.sh" elif command -v warp-cli >/dev/null 2>&1; then @@ -52,8 +52,8 @@ if [[ "${REMOVE_WARP,,}" == "y" || "${REMOVE_WARP,,}" == "yes" ]]; then systemctl stop warp-svc 2>/dev/null || true apt-get remove -y -qq cloudflare-warp 2>/dev/null || apt-get purge -y -qq cloudflare-warp 2>/dev/null || true else - echo "cloudflare-warp not found; skipped." + echo "Пакет cloudflare-warp не найден; пропуск." fi fi -echo "WARP Web UI uninstalled." +echo "WARP Web UI удалён."