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>
This commit is contained in:
andrey271192
2026-05-12 06:28:56 +03:00
parent b856909437
commit f6514e9bba
7 changed files with 768 additions and 185 deletions

View File

@@ -51,6 +51,17 @@ button:hover:not(:disabled) { background: #30363d; border-color: #58a6ff; color:
button:disabled { opacity: 0.4; cursor: not-allowed; }
button.danger { color: #f85149; border-color: #4a1f23; }
button.danger:hover:not(:disabled) { background: #4a1f23; color: #fff; border-color: #f85149; }
button.danger.solid {
background: #b1361a;
color: #fff;
border-color: #f85149;
font-weight: 600;
}
button.danger.solid:hover:not(:disabled) {
background: #f85149;
color: #fff;
border-color: #f85149;
}
button.sm { padding: 2px 8px; font-size: 11px; }
.actions {