- Rename project from xray-sub to xtui (app name, state dir, user-agent) - Add selected_index to config for O(1) saved server lookup - Add migrate_saved_index() for backward compatibility - Replace fingerprint-based comparison with index-based in menu and apply
66 lines
2.2 KiB
Markdown
66 lines
2.2 KiB
Markdown
# xtui
|
||
|
||
Небольшой TUI-скрипт для выбора сервера из JSON-подписки Xray.
|
||
|
||
## Установка на Arch Linux
|
||
|
||
Установите зависимости:
|
||
|
||
```bash
|
||
sudo pacman -S --needed bash curl jq coreutils systemd
|
||
```
|
||
|
||
Для действий с системными файлами нужен один из инструментов повышения прав: `sudo`, `doas`, `run0` или `pkexec`.
|
||
|
||
Сделайте скрипт исполняемым:
|
||
|
||
```bash
|
||
chmod +x main.sh
|
||
```
|
||
|
||
По желанию установите как команду:
|
||
|
||
```bash
|
||
sudo install -m 755 main.sh /usr/local/bin/xtui
|
||
```
|
||
|
||
## Запуск
|
||
|
||
Из папки проекта:
|
||
|
||
```bash
|
||
./main.sh
|
||
```
|
||
|
||
Если установлено в систему:
|
||
|
||
```bash
|
||
xtui
|
||
```
|
||
|
||
Первый запуск попросит ссылку на JSON-подписку, путь к конфигу Xray и имя systemd-службы.
|
||
|
||
Полезные команды:
|
||
|
||
```bash
|
||
xtui --setup # заново пройти настройку
|
||
xtui --refresh # обновить подписку
|
||
xtui --help # справка
|
||
```
|
||
|
||
## Что делает
|
||
|
||
Скрипт скачивает JSON-подписку, показывает список серверов в терминальном меню, записывает выбранный сервер в конфиг Xray и при необходимости перезапускает службу Xray.
|
||
|
||
В меню можно выбрать сервер, обновить подписку, а также запустить, остановить, перезапустить службу или посмотреть её статус.
|
||
|
||
## Где хранит файлы
|
||
|
||
Пользовательские файлы хранятся в `~/.xtui/`:
|
||
|
||
- `config` — настройки скрипта и последний выбранный сервер.
|
||
- `sub.json` — кэш скачанной подписки.
|
||
- `backups/` — папка для резервных файлов.
|
||
|
||
Конфиг Xray записывается туда, куда вы указали при настройке. По умолчанию это `/etc/xray/config.json`.
|