Files
netrunner-backend/.env.dev-remote.example
T
nineap 591643d364 Чинит .env.example: убирает мёртвый ADMIN_TG_ID, добавляет PROXY_INTERNAL_SECRET
ADMIN_TG_ID нигде не читается с тех пор, как admin_guard заменили на ролевую
систему (owner/staff/node_manage/partner_guard) — оставлять его в примерах
вводит в заблуждение. PROXY_INTERNAL_SECRET, наоборот, обязателен (main.rs
падает без него при старте), но отсутствовал во всех трёх .env*.example.

Заодно поправлен src/modules/auth/README.md — описывал admin_guard,
которого больше не существует.
2026-07-09 15:33:33 +07:00

74 lines
5.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# =====================================================================
# DEV VPS (docker-compose.dev-remote.yml). Скопируй в .env прямо на
# сервере (в DEPLOY_DIR) — файл гитигнорится, в репозиторий не попадает.
#
# ВАЖНО: Telegram Login Widget не работает на голом IP — /setdomain в
# BotFather принимает только доменное имя. На этот dev VPS (45.76.161.137)
# заведён DNS A-record dev.netrunner-vpn.com — используй его во всех
# URL ниже (и в аналогичном .env для netrunner-landing), а не IP напрямую.
#
# ВАЖНО #2: Telegram Web Apps (кнопки бота "Личный Кабинет"/"Тарифы"/
# "Синдикат") требуют https:// URL, а Telegram Login Widget в обычном браузере
# требует именно порт 443 (его CSP frame-ancestors не учитывает порт и всегда
# подразумевает дефолтный для схемы) — оба жёсткие требования платформы, не
# нашего кода. HTTPS для dev поднят через Caddy (docker-compose.dev-remote.yml)
# на порту 443, сертификат — через DNS-01 challenge (Cloudflare, порт 80
# закрыт — обычный HTTP-01 не пройдёт). Нужен CF_API_TOKEN ниже. Порт 443
# раньше занимала VPN-нода — перенесена на другой порт на этом же VPS.
# =====================================================================
DB_USER=netrunner_admin
DB_PASSWORD=CHANGE_ME_DEV_DB_PASSWORD
DB_NAME=netrunner
# Токен Cloudflare для DNS-01 (выпуск TLS-сертификата Caddy'ем без открытых
# 80/443) — создать в Cloudflare: My Profile → API Tokens → Create Token →
# шаблон "Edit zone DNS", ограниченный зоной netrunner-vpn.com. НЕ Global API Key.
CF_API_TOKEN=CHANGE_ME_CLOUDFLARE_DNS_EDIT_TOKEN
JWT_SECRET=CHANGE_ME_DEV_JWT_SECRET
ARGON_SALT=CHANGE_ME_DEV_ARGON_SALT_MIN_16_CHARS
TON_MASTER_WALLET=UQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKK8y
# Общий секрет с прокси-нодами этого dev-стенда (--require-auth) — обязателен,
# без него бэкенд не стартует. То же значение должно быть в .env.example
# netrunner-proxy на самих нодах.
PROXY_INTERNAL_SECRET=CHANGE_ME_DEV_PROXY_INTERNAL_SECRET
# Опционально: без него оплата через @CryptoBot просто вернёт "provider not
# supported", остальное продолжает работать как раньше. Токен берётся у
# @CryptoBot: /pay -> Create App -> Payment Token (лучше завести отдельное
# приложение для dev, чтобы инвойсы не путались с прод-платежами).
CRYPTOBOT_API_TOKEN=CHANGE_ME_CRYPTOBOT_API_TOKEN
CRYPTOBOT_TESTNET=true
BOT_ENABLED=true
# ОТДЕЛЬНЫЙ dev-бот, не прод-бот: у прод-бота в BotFather уже прописан
# прод-домен через /setdomain, и один бот не может обслуживать два разных
# домена одновременно. Заведи через @BotFather нового бота специально для
# dev и здесь, и в BOT_USERNAME у netrunner-landing (см. её .env на этом
# же сервере) укажи именно его username — иначе виджет логина молча
# использует прод-бота и Telegram ответит "Bot domain invalid".
TELOXIDE_TOKEN=123456789:YOUR_DEV_BOT_TOKEN_HERE
BOT_USERNAME=your_dev_bot_username
# https, порт 443 — через Caddy (см. выше), не порт 8080 напрямую: WebApp
# от Telegram по http:// открывать откажется.
WEB_APP_BASE_URL=https://dev.netrunner-vpn.com
SUBSCRIPTION_CHECK_INTERVAL=1800
RUST_LOG=netrunner_control_plane=debug,axum=info,tower_http=debug,sqlx=warn
# dev.netrunner-vpn.com:3000 — netrunner-landing, задеплоенный на этот же dev
# VPS (docker-compose.dev-remote.yml в репозитории netrunner-landing), обычный
# HTTP. dev.netrunner-vpn.com — сам бэкенд через Caddy (см. выше).
# COOKIE_DOMAIN нарочно пуст: host-only cookie уже расшаривается между
# портами одного и того же хоста браузером — Domain нужен только для
# реальных сабдоменов (прод).
CORS_ALLOWED_ORIGINS=http://localhost:1420,http://localhost:5173,tauri://localhost,http://tauri.localhost,http://dev.netrunner-vpn.com:3000,https://dev.netrunner-vpn.com
CSRF_ALLOWED_ORIGINS=http://localhost:1420,http://localhost:5173,http://dev.netrunner-vpn.com:3000,https://dev.netrunner-vpn.com
COOKIE_DOMAIN=
# true (как в проде): теперь у бэкенда есть настоящий TLS через Caddy на 443.
# Прямой доступ на голый :8080 (без Caddy) для браузерных auth-флоу больше не
# годится — Secure-cookie по нему браузер по-прежнему отбросит, это ожидаемо:
# все клиентские сценарии (бот, лендинг) идут через Caddy на 443.
COOKIE_SECURE=true