Files
netrunner-backend/.env.dev-remote.example
T
nineap 864d4bc852 CI сам собирает .env на прод/dev VPS из repo Variables/Secrets
Раньше .env копировался на сервер руками по .env.example — теперь
deploy-prod/deploy-dev в deploy.yml пишут его сами перед docker compose up,
тем же принципом, что уже был у netrunner-data. .env.example остаётся
только как справочник по составу переменных, не инструкция "скопируй на
сервер".
2026-07-10 18:18:47 +07:00

77 lines
5.7 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.
# =====================================================================
# УСТАРЕЛО КАК ИНСТРУКЦИЯ: .env на dev VPS теперь собирает сам deploy.yml
# (job deploy-dev) из repo Variables/Secrets — руками копировать больше не
# нужно. Файл остаётся только как справочник по составу переменных.
#
# DEV VPS (docker-compose.dev-remote.yml).
#
# ВАЖНО: 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