Denozordec 6421a9b28d
Publish telemt-api gateway Docker image / test (push) Successful in 24s
Publish telemt-api gateway Docker image / build-and-push (push) Successful in 27s
Update README.md to enhance web service documentation and local development instructions
- Clarified the process for pulling the gateway image and building the web service from the `web/` directory.
- Added details about accessing the gateway and Web UI, including CORS configuration for local development.
- Included instructions for running the web service locally without Docker, emphasizing the setup of environment variables and CORS settings.
2026-03-30 10:33:52 +07:00
2026-03-29 22:51:02 +07:00
2026-03-29 22:51:02 +07:00

telemt-api

HTTP‑шлюз на Go для Telemt Control API: один порт, белый список IP (CIDR), маршруты вида /api/{alias}/…{base_url}/v1/…, агрегация нескольких инстансов — /api/agg/…, метрики Prometheus на /metrics.

Быстрый старт (Linux)

Предполагается установлены Docker и Docker Compose v2.

Рекомендуется брать уже собранный образ из Container Registry Gitea (после каждого push в репозиторий CI обновляет теги, в том числе latest):

# при необходимости (закрытый registry): логин Gitea + PAT с read:package
docker login git.shts.su

docker pull git.shts.su/denozord/telemt-api:latest

Конфиг возьмите из репозитория или создайте свой config.yaml (см. config.example.yaml):

git clone <url-репозитория> && cd telemt-api
cp config.example.yaml config.yaml
# отредактируйте config.yaml: servers, whitelist_cidrs или allow_all для разработки

docker run -d --name telemt-gateway \
  -p 8080:8080 \
  -v "$(pwd)/config.yaml:/etc/telemt-gateway/config.yaml:ro" \
  -e CONFIG_PATH=/etc/telemt-gateway/config.yaml \
  git.shts.su/denozord/telemt-api:latest

curl -sS http://127.0.0.1:8080/health
curl -sS http://127.0.0.1:8080/api/main_srv/health

Обновление образа: docker pull git.shts.su/denozord/telemt-api:latest и пересоздайте контейнер (docker rm -f telemt-gateway и снова docker run …).

Compose

Тот же образ шлюза подтягивается из registry (без локальной сборки). Сервис web (панель в браузере) собирается из каталога web/ при первом запуске:

git clone <url-репозитория> && cd telemt-api
docker compose pull
docker compose up -d --build
docker compose logs -f gateway
  • Шлюз: http://127.0.0.1:8080 (проверка: curl -sS http://127.0.0.1:8080/health).
  • Web UI: http://127.0.0.1:4173 — в config.compose.yaml заданы cors_allowed_origins под этот origin; PUBLIC_TELEMT_GATEWAY_URL при сборке образа UI указывает на шлюз на хосте (http://127.0.0.1:8080).

Подробнее по панели: web/README.md.

Web UI (локально без Docker)

Если шлюз уже запущен (например на http://127.0.0.1:8080):

cd web
cp .env.example .env
# при необходимости отредактируйте PUBLIC_TELEMT_GATEWAY_URL
npm install
npm run dev

Откройте адрес Vite (обычно http://localhost:5173). В конфиге шлюза добавьте CORS, например:

cors_allowed_origins:
  - "http://localhost:5173"

Локальная сборка образа

Если нужен образ из исходников на этой машине: docker build -t telemt-api-gateway:local . и в docker run укажите тег telemt-api-gateway:local. Подробнее — docs/GATEWAY_RUN.md.

Документация

Документ Содержание
docs/GATEWAY_RUN.md Полная инструкция: конфиг, pull/registry, Docker CLI, Compose, CI/CD, неполадки
docs/API.md Контракт Telemt Control API (/v1/…)
docs/AGGREGATE.md Агрегирующие эндпоинты шлюза (/api/agg/…), CORS, кэш
docs/AGGREGATE_OPENAPI.yaml OpenAPI 3 черновик для /api/agg/* (генерация типов для UI)
web/README.md Web UI (SvelteKit + shadcn-svelte): установка, PUBLIC_TELEMT_GATEWAY_URL, Docker
docs/GEOIP.md GeoLite2 City (страна/город) и опционально ASN (номер AS, организация) для IP в unique-ips

Сборка и тесты без Docker

go mod tidy && go test ./...

CI/CD

В репозитории: .gitea/workflows/docker.yaml — тесты Go, сборка и публикация образа в Container Registry Gitea (см. раздел «Обновление и CI/CD» в docs/GATEWAY_RUN.md).

S
Description
Telemt API MultiProxy
Readme
1.9 MiB
Languages
Svelte 67.4%
Go 20.9%
TypeScript 10.3%
CSS 1%
Dockerfile 0.2%
Other 0.2%