# Remnawave panel REMNAWAVE_BASE_URL=https://panel.example.com REMNAWAVE_TOKEN= # Альтернатива: логин админа панели # REMNAWAVE_USERNAME=admin # REMNAWAVE_PASSWORD= # Telegram bot (от @BotFather) BOT_TOKEN= # Опционально: Client ID для Web Login (обычно = число до «:» в BOT_TOKEN) # TELEGRAM_CLIENT_ID= # Через запятую, например: 123456789,987654321 ADMIN_IDS= # Telegram Stars — пополнение баланса в боте (без доп. токена) # STARS_ENABLED=true # Сколько рублей зачислять за 1 ⭐ (курс) # STARS_RUB_PER_STAR=1.5 # Crypto Pay (@CryptoBot → Crypto Pay → Create App) # Можно заполнить в веб-админке /admin → Платежи (пишет в этот .env) CRYPTO_BOT_TOKEN= # CRYPTO_PAY_TESTNET=false # Heleket — резервная крипто-оплата (https://doc.heleket.com/ru) HELEKET_MERCHANT_ID= HELEKET_API_KEY= # Если пусто — берётся WEBAPP_URL/api/payments/heleket # HELEKET_CALLBACK_URL=https://bot.example.com/api/payments/heleket # HELEKET_CURRENCY=RUB # Lava.ru — карта / СБП (https://dev.lava.ru/) LAVA_SHOP_ID= LAVA_SECRET_KEY= # Доп. ключ для проверки webhook (обязателен для безопасного автозачисления) LAVA_ADDITIONAL_KEY= # LAVA_HOOK_URL=https://bot.example.com/api/payments/lava # LAVA_SUCCESS_URL=https://bot.example.com/pay/lava/success # LAVA_FAIL_URL=https://bot.example.com/pay/lava/fail # LAVA_EXPIRE_MINUTES=60 # AnyPay — карта / СБП / крипта (https://anypay.io/doc/api/create-payment) # В настройках проекта → URL оповещения: https://bot.example.com/api/payments/anypay ANYPAY_API_ID= ANYPAY_API_KEY= ANYPAY_PROJECT_ID= # ANYPAY_CURRENCY=RUB # Пустой METHOD = покупатель выбирает способ на странице AnyPay (SCI) # ANYPAY_METHOD= # ANYPAY_SUCCESS_URL=https://bot.example.com/pay/anypay/success # ANYPAY_FAIL_URL=https://bot.example.com/pay/anypay/fail # ANYPAY_EMAIL=pay@example.com # ANYPAY_CHECK_IP=false # Digiseller — автопополнение по уникальному коду # (https://my.digiseller.com/inside/api_general.asp) DIGISELLER_SELLER_ID= DIGISELLER_API_KEY= # ID товаров для пополнения (через запятую). Пусто = любой товар продавца. # DIGISELLER_PRODUCT_IDS=123456 # Ссылка на оплату (иначе соберётся из первого product id) # DIGISELLER_PAY_URL=https://oplata.info/asp2/pay.asp?id_d=123456 # cnt_goods = сумма в ₽ (товар без фикс. цены) | amount = сумма из ответа API # DIGISELLER_CREDIT_FROM=cnt_goods # URL автопроверки — укажи его в товаре Digiseller: # «Проверка уникального кода» → Автоматическая → deliver_url # Если пусто — берётся WEBAPP_URL/api/payments/digiseller # DIGISELLER_CALLBACK_URL=https://bot.example.com/api/payments/digiseller # PostgreSQL 17 POSTGRES_USER=vpnbot POSTGRES_PASSWORD=change-me-strong-password POSTGRES_DB=vpnbot # DATABASE_URL=postgresql://vpnbot:change-me-strong-password@db:5432/vpnbot # Telegram Mini App (публичный HTTPS через Caddy) WEBAPP_URL=https://bot.example.com WEBAPP_DOMAIN=bot.example.com WEBAPP_HOST=0.0.0.0 WEBAPP_PORT=8080 # Telegram Bot API webhook (вместо long polling). # По умолчанию ВКЛ, если WEBAPP_URL начинается с https:// # TELEGRAM_WEBHOOK=true # TELEGRAM_WEBHOOK_PATH=/telegram/webhook # Полный URL (если пусто = WEBAPP_URL + PATH): # TELEGRAM_WEBHOOK_URL=https://bot.example.com/telegram/webhook # Секрет в заголовке X-Telegram-Bot-Api-Secret-Token (если пусто — генерируется из BOT_TOKEN) # TELEGRAM_WEBHOOK_SECRET= # Коды пополнения — ссылка покупки кода (кнопка в боте и на сайте) TOPUP_CODE_PAY_URL= # Веб-админка: https://ваш-домен/admin WEB_ADMIN_LOGIN= WEB_ADMIN_PASSWORD= # Для Login Widget: в @BotFather → Web Login → bot.example.com # Optional: Caddy API key # CADDY_TOKEN= # SMTP — важные письма пользователям (также /admin → SMTP) # SMTP_HOST=smtp.example.com # SMTP_PORT=587 # SMTP_USER= # SMTP_PASSWORD= # SMTP_FROM=noreply@example.com # SMTP_TLS=true # SMTP_SSL=false # Юр. страницы (/offer /terms /privacy /aup /refund) — для EU/US платёжек # BRAND_NAME=VPN Service # BRAND_SITE=example.com # LEGAL_OPERATOR_NAME=Your Company Ltd # LEGAL_OPERATOR_ADDRESS=Registered address / юр. адрес # LEGAL_SUPPORT_EMAIL=support@example.com # LEGAL_EFFECTIVE_DATE=2026-07-24 # STATUS_PAGE_URL=https://status.example.com/