Files
domen_hydra/README.md
Андрей Бобырев 9675f779ea Remove screenshots from README and repo
Made-with: Cursor
2026-04-24 11:47:22 +03:00

135 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🌐 HydraRoute Manager
Веб-интерфейс для централизованного управления конфигурацией **HydraRoute Neo** на роутерах Keenetic. Без мониторинга, без Telegram — только домены и IP.
---
## Интерфейс
### Вкладка «Конфигурация» — группы доменов и IP
Карточки с переключателями вкл/выкл, политикой маршрутизации (HydraRoute, RU и т.д.), быстрым редактированием и кнопкой **«Обновить все роутеры»**.
### Вкладка «Импорт файлов»
Два текстовых поля для вставки содержимого `domain.conf` и `ip.list` с роутера, кнопки **«Сохранить на сервер»** и **«Сохранить + обновить все роутеры»**, ниже — экспорт текущей конфигурации для копирования.
### Вкладка «Роутеры»
Список роутеров с IP и SSH-паролем для массовой отправки конфига через `sshpass` + `curl` на каждый роутер.
### Вкладка «Настройки»
Смена пароля администратора веб-интерфейса (запись в `server/.env`).
### Экран входа
При открытии сайта запрашивается пароль из `ADMIN_PASSWORD` в `.env`.
---
## Возможности
- Управление группами доменов и IP через браузер
- Включение / отключение групп одним переключателем
- Импорт `domain.conf` и `ip.list` с роутера
- Отправка конфига на все роутеры одной кнопкой (SSH + `curl` с сервера)
- Авторизация по паролю
- Прямые ссылки для роутера: `/hydra/domain.conf`, `/hydra/ip.list`, `/hydra/version`
---
## Установка сервера (Ubuntu 22/24)
```bash
git clone https://github.com/andrey271192/domen_hydra.git /opt/domen-hydra
cd /opt/domen-hydra
bash server/install.sh
nano server/.env # задать ADMIN_PASSWORD
systemctl restart hydra-manager
```
Интерфейс: `http://IP:8000`
---
## Установка на роутер (Keenetic + Entware)
```bash
export SERVER_URL="http://IP_СЕРВЕРА:8000" \
&& curl -fsSL https://raw.githubusercontent.com/andrey271192/domen_hydra/main/install_router.sh | sh
```
Роутер будет каждый день в **02:00** скачивать актуальный конфиг с сервера.
Ручное обновление:
```bash
sh /opt/bin/hydra_update.sh
```
---
## Как пользоваться
1. Открой `http://IP:8000` → введи пароль из `.env`
2. **Импорт**: вставь `domain.conf` и `ip.list` с роутера → «Сохранить на сервер»
3. Редактируй группы на вкладке «Конфигурация»
4. Нажми **«Обновить все роутеры»** — файлы запишутся в `/opt/etc/HydraRoute/` и выполнится `neo restart`
---
## Формат файлов
**domain.conf:**
```
##youtube
youtube.com,youtu.be,googlevideo.com/HydraRoute
##avito
avito.ru,ozon.ru/RU
```
**ip.list:**
```
##geoip:ru
/RU
geoip:ru
```
---
## Структура проекта
```
server/
main.py — FastAPI приложение
config.py — настройки из .env
hydra_manager.py — парсинг/генерация domain.conf + ip.list
models.py — модели данных
database.py — работа с JSON
install.sh — установка на Ubuntu
.env.example — шаблон конфигурации
templates/
index.html — веб-интерфейс
install_router.sh — установка на роутер
hydra_update.sh — скачивание конфига с сервера
```
---
## Обновление
```bash
cd /opt/domen-hydra && git pull && systemctl restart hydra-manager
```
---
## Связь с Keenetic Unified
Логика парсинга `domain.conf` / `ip.list` и веб-интерфейс доменов взяты из проекта [keenetic-unified](https://github.com/andrey271192/keenetic-unified) в урезанном виде: только управление HydraRoute, без дашборда, watchdog и Telegram.