Region-aware pricing: GeoIP + VPN-детект + публичный /plans + бот
Build & Push Image / Build and push Caddy (Cloudflare DNS) image (push) Successful in 26s
Build & Push Image / Build and push to Gitea Registry (push) Successful in 9m36s
CI / fmt + clippy + test (push) Failing after 24m37s

- modules::geoip — DB-IP Lite (.mmdb, без регистрации/ключа, в отличие от
  MaxMind) для страны по IP, X4BNet lists_vpn для грубой VPN/датацентр-
  эвристики. Обе базы скачиваются в рантайме, обновление — фоновая
  задача в tasks.rs (раз в сутки по умолчанию, GEOIP_REFRESH_INTERVAL).
- GET /api/v1/billing/plans (public_router, без auth_guard) — цены в
  валюте, определённой по IP посетителя (X-Real-IP/X-Forwarded-For,
  см. nginx-конфиги). VPN/датацентр IP -> всегда базовый USD, чтобы
  обход региона через любой публичный VPN не обесценивал скидки.
- Бот: Bot API не отдаёт IP пользователя вообще — валюта определяется по
  Telegram language_code. Показ цены — в валюте региона, САМА оплата
  через CryptoBot остаётся в USD/USDT (провайдер биллит 1:1 к USD-цене
  тарифа, менять валюту списания нельзя, не меняя сам провайдер).
This commit is contained in:
2026-07-11 00:55:03 +07:00
parent a89721fbee
commit d91aef012e
15 changed files with 557 additions and 13 deletions
+16
View File
@@ -89,6 +89,22 @@ WEB_APP_BASE_URL=https://account.netrunner-vpn.com
# (NodeService::provision_node_via_ssh) и в .env.example netrunner-proxy.
PROXY_INTERNAL_SECRET=CHANGE_ME_PROXY_INTERNAL_SECRET_openssl_rand_hex_32
# =====================================================================
# === РЕГИОНАЛЬНЫЕ ЦЕНЫ: GEOIP + VPN-ДЕТЕКТ (см. modules::geoip) ===
# =====================================================================
# Все три — опциональны, дефолты в main.rs указывают прямо на публичные
# раздачи, ничего заполнять не обязательно для старта:
# GEOIP_DB_URL_TEMPLATE — DB-IP Lite (.mmdb.gz, тот же формат, что
# MaxMind, но без регистрации/лицензионного ключа), "{}" — плейсхолдер
# под "YYYY-MM" (у DB-IP имя файла с датой, единой "latest"-ссылки нет).
# VPN_LIST_URL — X4BNet lists_vpn, открытый список CIDR-диапазонов
# известных VPN/датацентров (эвристика, не 100% точная — см. их README).
# GEOIP_REFRESH_INTERVAL — как часто (сек) перекачивать обе базы,
# по умолчанию раз в сутки (86400).
# GEOIP_DB_URL_TEMPLATE=https://download.db-ip.com/free/dbip-country-lite-{}.mmdb.gz
# VPN_LIST_URL=https://raw.githubusercontent.com/X4BNet/lists_vpn/main/output/vpn/ipv4.txt
# GEOIP_REFRESH_INTERVAL=86400
# =====================================================================
# === APPLICATION RUNTIME SETTINGS ===
# =====================================================================