2026-09-10 17:45:36 +05:00
|
|
|
# Copy this to .env and fill in real values. Never commit .env.
|
|
|
|
|
|
|
|
|
|
# From @BotFather
|
|
|
|
|
BOT_TOKEN=123456789:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
|
|
|
BOT_USERNAME=YourBot_robot
|
|
|
|
|
|
|
|
|
|
# Telegram user IDs allowed into the bot's admin menu and the web panel, comma-separated
|
|
|
|
|
ADMIN_IDS=111111111,222222222
|
|
|
|
|
|
2026-09-10 18:14:05 +05:00
|
|
|
# Web panel login password — must be a real random string, min 8 chars
|
|
|
|
|
# (panel refuses to start on "change-me"/"admin"/etc). Generate one: openssl rand -base64 12
|
|
|
|
|
# Change it any time with: mbs pass
|
|
|
|
|
ADMIN_PANEL_PASSWORD=
|
2026-09-10 17:45:36 +05:00
|
|
|
|
|
|
|
|
# Domains — point all three A records at this server's IP (see README)
|
|
|
|
|
PANEL_DOMAIN=panel.example.com
|
|
|
|
|
SUB_DOMAIN=sub.example.com
|
|
|
|
|
SITE_DOMAIN=example.com
|
|
|
|
|
|
|
|
|
|
# Reality identity for the local node (this same box). Generate with:
|
|
|
|
|
# /usr/local/bin/xray x25519
|
|
|
|
|
# XRAY_PUBLIC_KEY is the "Password (PublicKey)" line; keep the matching
|
|
|
|
|
# private key only inside /usr/local/etc/xray/config.json (never here).
|
|
|
|
|
XRAY_PUBLIC_KEY=
|
|
|
|
|
REALITY_SNI=www.wildberries.ru
|
|
|
|
|
|
|
|
|
|
# Any 16-hex-char string per transport, e.g.: openssl rand -hex 8
|
|
|
|
|
XRAY_SHORT_ID_TCP=
|
|
|
|
|
XRAY_SHORT_ID_GRPC=
|
|
|
|
|
XRAY_SHORT_ID_XHTTP=
|
|
|
|
|
|
|
|
|
|
# Public hostname clients connect to for the local node (A record -> this server)
|
|
|
|
|
DE1_ADDRESS=de1.example.com
|
2026-09-10 21:44:45 +05:00
|
|
|
|
|
|
|
|
# Payments — off by default, bot keeps handing out free subscriptions on button press.
|
|
|
|
|
# Flip to true only once at least one provider below is configured and its webhook is live.
|
|
|
|
|
PAYMENTS_ENABLED=false
|
|
|
|
|
|
|
|
|
|
# Prices in RUB per plan (whole numbers). Only used when PAYMENTS_ENABLED=true.
|
|
|
|
|
PRICE_7D=150
|
|
|
|
|
PRICE_1M=399
|
|
|
|
|
PRICE_3M=999
|
|
|
|
|
PRICE_6M=1799
|
|
|
|
|
PRICE_1Y=2999
|
|
|
|
|
|
|
|
|
|
# ЮKassa — https://yookassa.ru, shop id + secret key from your account settings.
|
|
|
|
|
# Webhook to add in their dashboard: https://<PANEL_DOMAIN>/payments/webhook/yookassa
|
|
|
|
|
YOOKASSA_ENABLED=false
|
|
|
|
|
YOOKASSA_SHOP_ID=
|
|
|
|
|
YOOKASSA_SECRET_KEY=
|
|
|
|
|
|
|
|
|
|
# Platega — https://platega.io, merchant id + secret from your manager.
|
|
|
|
|
# Webhook to add in their dashboard: https://<PANEL_DOMAIN>/payments/webhook/platega
|
|
|
|
|
PLATEGA_ENABLED=false
|
|
|
|
|
PLATEGA_MERCHANT_ID=
|
|
|
|
|
PLATEGA_SECRET=
|
2026-09-10 22:06:15 +05:00
|
|
|
|
|
|
|
|
# Device limit (HWID) — off by default. Requires the VPN client app to send an
|
|
|
|
|
# x-hwid header on subscription fetch (Happ/v2rayTun-class apps do this); clients
|
|
|
|
|
# that don't send it get refused once enabled, so only flip this on if your users'
|
|
|
|
|
# apps actually support it.
|
|
|
|
|
HWID_LIMIT_ENABLED=false
|
|
|
|
|
HWID_FALLBACK_LIMIT=3
|