Commit 5f77e023 authored by Vitaly Lipatov's avatar Vitaly Lipatov

route-web-api: add geo list, proxy sidebar, remove "no rule" button

- Add third list "geo" (web-geo.list) for geo-blocked domains routed via gre - Add warp gateway to CHECK_GATEWAYS for site availability checks - Add left sidebar with all egw/ogw proxy servers (17 egw + 4 ogw) - Replace "Без правила" button with "Geo (gre)" button - Update makeEntry() to show two move buttons per entry (to other two lists) - Update OpenAPI spec with geo mode in all endpoints - Update documentation with web-geo.list and gre symlinks - Widen layout from 900px to 1300px for sidebar + 3 columns Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
parent 75e5d544
# route-web-api — веб-интерфейс управления маршрутами
Веб-сервис для добавления доменов/IP на обход (egw) или напрямую (dgw)
на шлюзе igw.etersoft.ru. Доступен только из офисной сети.
Веб-сервис для добавления доменов/IP на обход (egw), напрямую (dgw) или
гео-обход (gre) на шлюзе igw.etersoft.ru. Доступен только из офисной сети.
**URL:** http://igw.etersoft.ru/
## Принцип работы
- Веб-сервис работает под пользователем `routeweb`, управляет двумя list-файлами
- Веб-сервис работает под пользователем `routeweb`, управляет тремя list-файлами
- `route-update.sh` подхватывает изменения автоматически по таймеру (каждые 5 мин)
через MD5 hash detection — API его НЕ вызывает
- Добавление домена в один список автоматически удаляет его из другого
......@@ -42,7 +42,7 @@ OpenAPI 3.0 спецификация всех endpoint'ов (JSON).
**Ответ:**
```json
{"bypass": ["example.com", "1.2.3.4"], "direct": ["site.ru"]}
{"bypass": ["example.com", "1.2.3.4"], "direct": ["site.ru"], "geo": ["blocked-geo.com"]}
```
### POST /api/add
......@@ -55,7 +55,7 @@ OpenAPI 3.0 спецификация всех endpoint'ов (JSON).
```
- `domain` — домен, IP, подсеть или URL (из URL извлекается домен)
- `mode``bypass` (через egw) или `direct` (через dgw)
- `mode``bypass` (через egw), `direct` (через dgw) или `geo` (через gre)
**Ответ:** `{"ok": true, "domain": "example.com", "mode": "bypass"}`
......@@ -119,14 +119,17 @@ OpenAPI 3.0 спецификация всех endpoint'ов (JSON).
- `route-web-api.py` — копия скрипта
- `web-bypass.list` — домены через egw (owner=routeweb)
- `web-direct.list` — домены через dgw (owner=routeweb)
- `web-geo.list` — домены с гео-блокировкой через gre (owner=routeweb)
- `all-routes.json` — генерируется route-update.sh (owner=root, 644)
### Симлинки (создаёт root)
```
routes.d/egw/web-bypass.list → /home/routeweb/route-web-api/web-bypass.list
routes.d/dgw/web-direct.list → /home/routeweb/route-web-api/web-direct.list
routes.d/gre/web-geo.list → /home/routeweb/route-web-api/web-geo.list
routes6.d/egw/web-bypass.list → /home/routeweb/route-web-api/web-bypass.list
routes6.d/dgw/web-direct.list → /home/routeweb/route-web-api/web-direct.list
routes6.d/gre/web-geo.list → /home/routeweb/route-web-api/web-geo.list
```
## Безопасность
......@@ -148,13 +151,16 @@ mkdir /home/routeweb/route-web-api
cp route-web-api.py /home/routeweb/route-web-api/
touch /home/routeweb/route-web-api/web-bypass.list
touch /home/routeweb/route-web-api/web-direct.list
touch /home/routeweb/route-web-api/web-geo.list
chown -R routeweb:routeweb /home/routeweb/route-web-api/
# 3. Симлинки
ln -s /home/routeweb/route-web-api/web-bypass.list routes.d/egw/web-bypass.list
ln -s /home/routeweb/route-web-api/web-direct.list routes.d/dgw/web-direct.list
ln -s /home/routeweb/route-web-api/web-geo.list routes.d/gre/web-geo.list
ln -s /home/routeweb/route-web-api/web-bypass.list routes6.d/egw/web-bypass.list
ln -s /home/routeweb/route-web-api/web-direct.list routes6.d/dgw/web-direct.list
ln -s /home/routeweb/route-web-api/web-geo.list routes6.d/gre/web-geo.list
# 4. iptables
iptables -A INPUT -p tcp -s 91.232.225.0/24 --dport 80 -j ACCEPT
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment