Files
remnawave-minishop/docs/configuration.md
T

6.3 KiB
Raw Blame History

Настройка окружения

Проект поддерживает два слоя конфигурации:

  • .env - bootstrap, инфраструктура, стабильные секреты и базовые доступы к Remnawave;
  • Web App админка - основной рекомендуемый способ менять продуктовые настройки после первого запуска.

Админка сохраняет overrides в базе данных и применяет их поверх .env. Это удобно для платежей, внешнего вида, поддержки, уведомлений, legacy-цен и большинства пользовательских параметров. Тарифы редактируются отдельно в разделе Система -> Тарифы и сохраняются в JSON-файл TARIFFS_CONFIG_PATH.

Полный справочник всех переменных вынесен в env-vars.md.

Минимальный .env

Начните с короткого примера:

cp .env.example .env
nano .env

Минимально заполните:

Переменная Зачем нужна
BOT_TOKEN Токен Telegram-бота.
ADMIN_IDS Telegram ID администраторов через запятую; без этого не попасть в Web App админку.
WEBHOOK_BASE_URL Публичный URL webhook-домена backend.
POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB Доступы PostgreSQL для Compose и backend.
WEBAPP_SESSION_SECRET Стабильный секрет сессий Web App.
WEBHOOK_SECRET_TOKEN Стабильный secret token Telegram webhook.
SUBSCRIPTION_MINI_APP_URL Публичный URL Mini App, чтобы бот мог открыть личный кабинет.
PANEL_API_URL, PANEL_API_KEY, PANEL_WEBHOOK_SECRET Базовая интеграция с Remnawave. Эти значения стоит хранить в .env, но при необходимости их можно переопределить из админки.

WEBAPP_SESSION_SECRET и WEBHOOK_SECRET_TOKEN можно сгенерировать так:

openssl rand -hex 32

Если оставить эти секреты пустыми, приложение сгенерирует их на процесс, но после рестарта Web App-сессии станут невалидными, а Telegram webhook получит новый secret_token.

Настройка через админку

После запуска откройте Mini App под аккаунтом, чей Telegram ID указан в ADMIN_IDS, и перейдите в админ-панель.

Рекомендуемый порядок первичной настройки:

  1. Система -> Настройки -> Remnawave: проверьте PANEL_API_URL, PANEL_API_KEY, PANEL_WEBHOOK_SECRET, базовые squads.
  2. Система -> Тарифы: создайте JSON-каталог тарифов, выберите Internal Squads, настройте period/traffic-модели, premium-сквады и HWID-пакеты.
  3. Система -> Настройки -> Платежи: включите нужные провайдеры и заполните их ключи.
  4. Внешний вид: настройте название, тему, логотип, favicon и accent.
  5. Система -> Настройки -> Поддержка / Уведомления: настройте тикеты, лог-чат, email-уведомления и напоминания.
  6. Общие настройки: заполните ссылки на поддержку, документы, статус сервиса и обязательный канал, если он нужен.

Изменения из админки пишутся в таблицу app_setting_overrides. При сбросе override снова используется значение из .env или дефолт из кода.

Что оставить только в .env

Не все настройки стоит переносить в базу. В .env остаются:

  • токен бота и ADMIN_IDS;
  • параметры PostgreSQL, Redis, портов и Compose;
  • WEBHOOK_BASE_URL, потому что Telegram webhook устанавливается при старте;
  • стабильные секреты WEBAPP_SESSION_SECRET и WEBHOOK_SECRET_TOKEN;
  • WEBAPP_THEMES_DIR, TARIFFS_CONFIG_PATH и низкоуровневые TTL/pool/worker-параметры;
  • Remnawave-доступы как базовый источник правды, даже если для удобства они доступны в админке.

Файловые данные

В штатном docker-compose.yml данные хранятся в named volume shop-data. Внутри него лежат тарифы, темы, логотипы и прочие файловые данные приложения.

Если для локальной разработки включаете bind mount ./data:/app/data, заранее создайте каталоги и отдайте их пользователю контейнера:

mkdir -p data/themes data/webapp-logo data/webapp-emoji data/tariffs
chown -R 10001:10001 data
chmod -R u+rwX data
docker compose up -d --force-recreate backend worker

Проверить права можно так:

docker compose exec backend sh -lc 'id; touch /app/data/themes/test && rm /app/data/themes/test'

Дополнительные разделы

  • env-vars.md - полный справочник переменных .env.
  • admin.md - как устроены overrides и allowlist настроек.
  • tariffs.md - JSON-каталог тарифов и редактор тарифов.
  • webapp.md - домен Mini App, Telegram OAuth и email-вход.
  • support.md - тикеты поддержки и уведомления.
  • deployment.md - Docker Compose, reverse proxy, Caddy/Nginx и обновления.