Files
PnvPanel/.env.example
T
Leonid Pershin 8067be3c35
CI / Backend (build + test) (push) Successful in 1m17s
CI / Frontend (lint + typecheck + build) (push) Successful in 35s
Implement rate limiting and enhance authentication flow
- Added rate limiting configuration for authentication endpoints, allowing customizable request limits via environment variables.
- Updated authentication flow to utilize HttpRequest for cookie management, ensuring secure handling of refresh tokens.
- Introduced a new endpoint to retrieve user subscription details.
- Enhanced the handling of Telegram bot token validation to prevent errors with empty tokens.
- Updated the application to serialize enums as strings for better documentation and compatibility with TypeScript.
- Improved test coverage for new features and adjustments in command handlers.
2026-07-02 12:40:23 +03:00

58 lines
4.1 KiB
Bash

# PnvPanel — пример переменных окружения.
# Скопируй в .env и заполни значения. Ключи вида Section__Key биндятся в IOptions<T> ASP.NET Core.
# ВСЕ значения-секреты ниже обязательно заменить перед запуском (особенно *_PASSWORD, *SigningKey, *BotToken).
# ── PostgreSQL (контейнер db) ─────────────────────────────────────────────
POSTGRES_DB=pnvpanel
POSTGRES_USER=pnvpanel
POSTGRES_PASSWORD=change-me-strong-db-password
# Строка подключения приложения (host = имя сервиса БД в docker-compose)
ConnectionStrings__Default=Host=db;Port=5432;Database=pnvpanel;Username=pnvpanel;Password=change-me-strong-db-password
# ── JWT ───────────────────────────────────────────────────────────────────
Jwt__Issuer=PnvPanel
Jwt__Audience=PnvPanel
Jwt__SigningKey=change-me-min-32-chars-random-secret
Jwt__AccessTokenMinutes=15
Jwt__RefreshTokenDays=30
# ── Data Protection (шифрование секретов нод 3x-ui at-rest) ────────────────
# Путь к тому с key-ring (должен быть примонтирован и переживать перезапуск контейнера)
DataProtection__KeyRingPath=/app/keys
# ── Сид администратора (создаётся при первом старте, если не существует) ───
# Логин в систему — по username. Email в системе не используется.
AdminSeed__Username=admin
AdminSeed__Password=change-me-strong-admin-password
# Telegram id(ы) администраторов (через запятую). Дают права админа в боте
# и получают уведомления о запросах на активацию. Узнать id: @userinfobot.
AdminSeed__TelegramUserIds=123456789
# ── Роли по умолчанию ─────────────────────────────────────────────────────
# Квота конфигов для системной роли "user" (выдаётся при регистрации).
Roles__DefaultUserMaxConfigs=3
# ── Rate limiting ────────────────────────────────────────────────────────
# Лимит запросов/мин на auth-эндпоинты (login/register/refresh/telegram/subscription). По умолчанию 20.
# RateLimiting__AuthPermitLimit=20
# ── Telegram-бот ──────────────────────────────────────────────────────────
# Если BotToken пуст — бот не стартует, панель работает без него.
Telegram__BotToken=
Telegram__BotUsername=PnvPanelBot
Telegram__Mode=LongPolling
# Для Mode=Webhook:
# Telegram__WebhookUrl=https://panel.example.com/tg/webhook
# Telegram__WebhookSecret=change-me-webhook-secret
# ── Приложение ────────────────────────────────────────────────────────────
# Публичный URL сайта (для deep-link'ов бота и ссылок).
App__PublicSiteUrl=https://panel.example.com
# CORS-источники (для dev; в проде фронт и бек — один origin).
App__CorsOrigins=http://localhost:5173
# ── ASP.NET Core ──────────────────────────────────────────────────────────
ASPNETCORE_ENVIRONMENT=Production
ASPNETCORE_HTTP_PORTS=8080