- Added CORS allowed origins in config.compose.yaml to enable cross-origin requests from the web service. - Updated docker-compose.yml to include a new web service with build context and port mapping for local development. - Enhanced gateway.go to support additional HTTP methods in CORS responses. - Updated README.md to document the new web service and its configuration requirements.
Telemt Panel (Web UI)
SvelteKit + shadcn-svelte: обзор флота (/api/agg/*), пользователи и IP, панель по каждой ноде через прокси шлюза (/api/{alias}/…).
Переменные окружения
| Переменная | Описание |
|---|---|
PUBLIC_TELEMT_GATEWAY_URL |
Базовый URL шлюза telemt-api без завершающего / (например http://127.0.0.1:8080). Встраивается в клиент при сборке. |
Скопируйте .env.example в .env и при необходимости измените URL.
Разработка
cd web
npm install
npm run dev
Откройте в браузере адрес Vite (по умолчанию http://localhost:5173). В конфиге шлюза укажите CORS, например:
cors_allowed_origins:
- "http://localhost:5173"
Сборка
npm run build
npm run preview # проверка статики
Типы из OpenAPI агрегатов
После изменения ../docs/AGGREGATE_OPENAPI.yaml:
npm run gen:api
Docker
Сборка образа из каталога web/:
docker build -t telemt-web:local --build-arg PUBLIC_TELEMT_GATEWAY_URL=http://127.0.0.1:8080 .
В docker-compose.yml сервис web отдаёт UI на порту 4173. URL шлюза в образе задаётся build-arg (см. compose). Браузер на хосте обращается к шлюзу по http://127.0.0.1:8080 — при другом адресе пересоберите образ с нужным PUBLIC_TELEMT_GATEWAY_URL.
Ограничения
- Секреты upstream к Telemt задаются на шлюзе (
authorization_env), не в браузере. - Mutating CORS: шлюз должен разрешать
POST,PATCH,DELETEв preflight (в текущей версии репозитория заголовокAccess-Control-Allow-Methodsэто учитывает).