Files
telemt-api/config.example.yaml
T
Denozordec d7a63f0da3
Publish telemt-api gateway Docker image / test (push) Failing after 17s
Publish telemt-api gateway Docker image / build-and-push (push) Has been skipped
Add GeoIP support for unique IP aggregation
- Introduced GeoIP configuration options in config.example.yaml to enable geolocation lookups for the /api/agg/unique-ips endpoint.
- Updated the aggregate handler to include optional GeoIP data in responses, enriching unique IP information with country and city details, as well as ASN data if available.
- Enhanced documentation in AGGREGATE.md and README.md to reflect the new GeoIP functionality and its usage.
- Added a dependency on the geoip2-golang library in go.mod for GeoIP lookups.
- Modified tests to accommodate the new GeoIP integration in the aggregate handler.
2026-03-30 01:47:08 +07:00

58 lines
1.9 KiB
YAML

# Telemt API gateway — copy to config.yaml and mount into the container.
#
# Semantics: client calls GET /api/{alias}/health
# forwarded to GET {base_url}/v1/health
listen: ":8080"
# If true, IP whitelist is not enforced (development only).
allow_all: false
# CIDR allowlist when allow_all is false. Empty list denies all clients.
# Можно указывать и одиночный IP (будет трактован как /32 или /128), и CIDR.
whitelist_cidrs:
- "127.0.0.1/32"
- "203.0.113.5"
- "::1/128"
# Docker bridge (adjust to your environment):
# - "172.16.0.0/12"
# When the direct TCP peer is in these CIDRs, client IP for whitelist is taken
# from X-Forwarded-For (first hop) or X-Real-IP (e.g. behind nginx).
# trusted_proxies:
# - "10.0.0.0/8"
trusted_proxies: []
# Опционально: по умолчанию /api/agg/* опрашивает все servers; можно ограничить список:
# aggregate:
# include_aliases:
# - gt1
# - gt2
# Геолокация IP в /api/agg/unique-ips. См. docs/GEOIP.md (City + опционально ASN; Country-only не нужен)
# geoip:
# enabled: true
# database_path: /var/lib/telemt-gateway/GeoLite2-City.mmdb
# download_url: "https://github.com/P3TERX/GeoLite.mmdb/raw/download/GeoLite2-City.mmdb"
# asn_database_path: /var/lib/telemt-gateway/GeoLite2-ASN.mmdb
# asn_download_url: "https://github.com/P3TERX/GeoLite.mmdb/raw/download/GeoLite2-ASN.mmdb"
servers:
- alias: main_srv
base_url: http://127.0.0.1:9091
path_prefix: /v1
# authorization_env: TELEMT_API_AUTH
# ivx: HTTPS + nginx location /api/ → Telemt; base_url должен заканчиваться на /api/
- alias: gt1
base_url: https://gt1.ivx.su/api/
path_prefix: /v1
- alias: gt2
base_url: https://gt2.ivx.su/api/
path_prefix: /v1
- alias: gt3
base_url: https://gt3.ivx.su/api/
path_prefix: /v1