Commit Graph

6 Commits

Author SHA1 Message Date
Андрей Бобырев
a2182d0b91 fix(webui): cookie session login/logout (replace Basic Auth)
Browsers cannot clear HTTP Basic credentials; logout never worked reliably.
Use Flask signed session + /login form + GET /logout + POST /api/logout.
Optional KASKAD_SECRET_KEY or auto /etc/kaskad/.session_secret.
Fetch API uses credentials: same-origin; 401 redirects to /login.

Docs + README updated.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 20:04:03 +03:00
Андрей Бобырев
b8757548a2 fix(webui): logout via XHR wrong Basic creds (Chrome-safe)
fetch()+manual Authorization is ignored when browser has cached HTTP auth.
Use XMLHttpRequest.open(user,password) with random bogus pair, then
location.replace('/') so login prompts again. Add Cache-Control on 401.
Header buttons: type=button, @click.prevent on logout.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 20:00:18 +03:00
andrey271192
035534e4f2 feat(webui): смена пароля и кнопка выхода
- POST /api/auth/password — смена пароля админа с проверкой текущего,
  атомарно переписывает /etc/kaskad/webui.env и hot-reload WEB_PASS
  в памяти (рестарт не нужен)
- GET  /api/auth/whoami   — текущий логин (показываем в шапке)
- GET  /api/logout        — 401 с уникальным realm → браузер сбрасывает
  кеш Basic Auth
- UI: кнопки 🔑 Пароль и ↪ Выход в шапке; модалка смены пароля
  с двойным вводом и автологаутом после успеха

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 06:37:52 +03:00
andrey271192
f6514e9bba feat: one-command install/uninstall + fix delete-ams in WebUI
- install.sh: интерактивный one-liner — ставит WG, ключи, скрипты,
  бот, WebUI, cron; сам поднимает RU-сервер если он чистый
- uninstall.sh: полная очистка (сервисы, конфиги, cron, /opt/kaskad)
  с подтверждением; опц. KASKAD_PURGE_KEYS=1 для затирания ключей
- webui: кнопка «удалить» для зарубежных серверов теперь явно красная
  (class danger.solid), для локального — « нельзя» вместо disabled
- webui: DELETE /api/ams/<id> переписан — портативный python-based
  peer-removal, явные ошибки, поддержка ?force=1
- README + docs/install.md: переписаны под обычного пользователя,
  one-command flow на первом плане, ручной — как fallback

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 06:28:56 +03:00
andrey271192
b856909437 docs: добавлены секции 'Поддержка проекта' и связанные проекты
README:
- Связанные проекты (keenetic-unified, keenetic_ssh-web, keenetic-dns-routes)
- Поддержка: GitHub звезда, Boosty, Ozon СБП, Telegram @Iot_andrey

WebUI footer:
- кнопки Boosty, Ozon, Telegram, GitHub в одну строку
2026-05-02 22:20:45 +03:00
andrey271192
209caa81a8 Initial release of Kaskad
Каскадная маршрутизация русских сайтов через свой набор RU-серверов
с failover, Telegram-ботом и веб-интерфейсом.

- bin/        — failover-script, route/domain helpers, ams/ru bootstrap
- bot/        — Telegram-бот (Python, long-poll)
- webui/      — Flask single-page dashboard
- docs/       — установка, архитектура, API бота и WebUI
- examples/   — шаблоны конфигов
2026-05-02 09:13:23 +03:00