- Added optional Mihomo configuration fields in `config.compose.yaml` and `config.example.yaml` for enhanced integration with the Mihomo external-controller. - Updated the `Gateway` to handle Mihomo API requests, including proxying and error handling for Mihomo-specific endpoints. - Enhanced the documentation in `GATEWAY_RUN.md` to guide users on configuring Mihomo integration. - Introduced new utility functions in the web client for interacting with Mihomo API endpoints, improving the overall user experience. - Updated the sidebar in the Svelte components to include a link to the Mihomo section, enhancing navigation.
Telemt Panel (Web UI)
SvelteKit + shadcn-svelte. В production статика собирается и встраивается в образ шлюза (Dockerfile в корне репозитория): панель и API на одном порту (например http://127.0.0.1:8080/ — UI, /api/… — шлюз).
Основные разделы панели
/— обзор флота (KPI, активные IP, сводка по нодам)/users,/users/[username]— пользователи и детали/ips— unique IP + GeoIP карта/incidents— triage-интерфейс инцидентов (ack/resolved/owner/noteв localStorage)/live— live snapshot (SSE, авто-reconnect)
Переменная PUBLIC_TELEMT_GATEWAY_URL
| Значение | Когда |
|---|---|
| (пусто) | Тот же хост и порт, что у страницы (Docker-образ шлюза, npm run build в Dockerfile с ENV PUBLIC_TELEMT_GATEWAY_URL=) |
http://127.0.0.1:8080 |
Локальная разработка: Vite на :5173, шлюз на :8080 |
Скопируйте .env.example в .env и при необходимости задайте URL.
Разработка (Vite отдельно от Go)
cd web
npm install
npm run dev
Откройте http://localhost:5173. В конфиге шлюза включите CORS для этого origin:
cors_allowed_origins:
- "http://localhost:5173"
Сборка только фронта
npm run build
Артефакт — каталог build/, при сборке Docker-образа шлюза он копируется в internal/webui/static/ и попадает в бинарник через embed.
Типы из OpenAPI агрегатов
npm run gen:api
Источник: ../docs/AGGREGATE_OPENAPI.yaml.
URL-driven controls (операторский режим)
На ключевых страницах используются query-параметры:
aliases=node-a,node-b— фильтр по нодамrefresh=0|10..300— auto-refresh (0 выключает polling)include_links=0|1— для/usersgeo=0|1— для/ips
Live-страница /live работает через SSE endpoint шлюза: /api/live/events.
Ограничения
- Секреты upstream к Telemt задаются на шлюзе (
authorization_env), не в браузере. - Для мутаций из другого origin шлюз отдаёт нужные заголовки CORS (в т.ч. методы
POST,PATCH,DELETE).