Переменные окружения Remnawave

Переменные окружения

[warn]Для изменения переменных окружения необходимо пересоздать контейнеры Remnawave.
Простой перезапуск контейнеров не обновляет окружение внутри контейнера!
Для пересоздания выполните: docker compose down && docker compose up -d.[/warn]

Изменение переменных окружения

Редактируйте переменные в файле .env, который обычно находится в /opt/remnawave.

cd /opt/remnawave && nano .env

Порты

Переменная Описание По умолчанию
APP_PORT Порт для панели Remnawave 3000
METRICS_PORT Порт для конечных точек метрик 3001
Пример
APP_PORT=3000
METRICS_PORT=3001

Масштабирование API

Количество экземпляров API для запуска.

Возможные значения:

  • max (запуск на всех ядрах)
  • <число> (запуск на указанном числе ядер)
  • -1 (запуск на всех ядрах - 1)

По умолчанию запускается 1 экземпляр.
Большинству пользователей не нужно менять это значение, но оно может улучшить производительность при 40k+ пользователей.

Предупреждение:

Не устанавливайте значение больше числа ядер процессора.

Переменная Описание По умолчанию
API_INSTANCES Количество экземпляров API 1
Пример
API_INSTANCES=1

Redis

Переменная Описание По умолчанию Обязательно
REDIS_HOST Хост сервера Redis remnawave-redis Да
REDIS_PORT Порт сервера Redis 6379 Да
REDIS_DB База данных Redis 0 Нет
REDIS_PASSWORD Пароль сервера Redis Нет
Пример
REDIS_HOST=remnawave-redis
REDIS_PORT=6379

База данных

Переменные ниже используются контейнером базы данных, а не Remnawave.

Переменная Описание По умолчанию Обязательно
POSTGRES_USER Пользователь базы данных postgres Нет
POSTGRES_PASSWORD Пароль базы данных postgres Нет
POSTGRES_DB Имя базы данных postgres Нет

Remnawave использует URL PostgreSQL для подключения:

postgresql://{user}:{password}@{host}:{port}/{database}
DATABASE_URL="postgresql://postgres:postgres@remnawave-db:5432/postgres"
Пример
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=postgres
DATABASE_URL="postgresql://postgres:postgres@remnawave-db:5432/postgres"

Секретные ключи

Рекомендуется использовать генератор случайных строк для создания ключей длиной минимум 64 символа.

[negative]Не используйте стандартные учетные данные в продакшене.
Обязательно создайте надежные секретные ключи![/negative]

openssl rand -hex 64
Переменная Описание По умолчанию Обязательно
JWT_AUTH_SECRET Секретный ключ для JWT авторизации change_me Да
JWT_API_TOKENS_SECRET Секретный ключ для JWT API токенов change_me Да
Пример
JWT_AUTH_SECRET=strong_secret_key
JWT_API_TOKENS_SECRET=strong_secret_key

Уведомления Telegram

TELEGRAM_NOTIFY_USERS_CHAT_ID, TELEGRAM_NOTIFY_USERS_THREAD_ID — для уведомлений о событиях пользователей.
TELEGRAM_NOTIFY_NODES_CHAT_ID, TELEGRAM_NOTIFY_NODES_THREAD_ID — для уведомлений о событиях узлов.

Переменная Описание По умолчанию Возможные значения
IS_TELEGRAM_NOTIFICATIONS_ENABLED Включение/отключение уведомлений false true, false
TELEGRAM_BOT_TOKEN Токен Telegram-бота
TELEGRAM_NOTIFY_USERS_CHAT_ID ID чата для уведомлений о пользователях
TELEGRAM_NOTIFY_NODES_CHAT_ID ID чата для уведомлений об узлах
TELEGRAM_NOTIFY_USERS_THREAD_ID ID темы в группе для пользователей
TELEGRAM_NOTIFY_NODES_THREAD_ID ID темы в группе для узлов
Заметка:

ID группового чата Telegram всегда начинается с -100.

Пример
# Включение/отключение уведомлений Telegram
IS_TELEGRAM_NOTIFICATIONS_ENABLED=false
# Токен Telegram-бота
TELEGRAM_BOT_TOKEN=change_me
# Уведомления о пользователях
TELEGRAM_NOTIFY_USERS_CHAT_ID=change_me
# Уведомления об узлах
TELEGRAM_NOTIFY_NODES_CHAT_ID=change_me
# Опционально, для отправки уведомлений в конкретные темы группы
TELEGRAM_NOTIFY_USERS_THREAD_ID=
TELEGRAM_NOTIFY_NODES_THREAD_ID=

Telegram OAuth

Переменная Описание По умолчанию Возможные значения
TELEGRAM_OAUTH_ENABLED Включение/отключение Telegram OAuth false true, false
TELEGRAM_OAUTH_ADMIN_IDS Массив ID администраторов, которым разрешен вход
Пример
# Вход через Telegram
TELEGRAM_OAUTH_ENABLED=false
# Массив ID администраторов, которым разрешен вход
TELEGRAM_OAUTH_ADMIN_IDS=[123, 321]

Домены

Переменная Описание По умолчанию Обязательно
FRONT_END_DOMAIN Домен панели Remnawave для CORS-заголовков * Да
SUB_PUBLIC_DOMAIN Домен и путь публичного URL подписки example.com/api/sub Да

SUB_PUBLIC_DOMAIN используется для установки публичного URL подписки в ответах RestAPI и интерфейсе панели.

Информация:

Для панели установите yourpanel.com/api/sub.

Пример
FRONT_END_DOMAIN=yourpanel.com
SUB_PUBLIC_DOMAIN=yourpanel.com/api/sub

Документация

Переменная Описание По умолчанию Возможные значения
IS_DOCS_ENABLED Включение/отключение документации false true, false

IS_DOCS_ENABLED включает или отключает документацию.

Информация:

При включении (IS_DOCS_ENABLED=true) на странице «API Keys» в панели администратора появится ссылка на документацию.

Переменная Описание По умолчанию
SWAGGER_PATH Путь к интерфейсу Swagger UI /docs
SCALAR_PATH Путь к интерфейсу Scalar UI /scalar
Пример
IS_DOCS_ENABLED=true
SWAGGER_PATH=/docs
SCALAR_PATH=/scalar

Метрики Prometheus

Информация:

Для генерации случайного пароля для метрик используйте:

openssl rand -hex 64
Переменная Описание По умолчанию
METRICS_USER Пользователь для метрик admin
METRICS_PASS Пароль для метрик change_me
Пример
IS_DOCS_ENABLED=true
METRICS_USER=admin
METRICS_PASS=change_me

Пример конфигурации Prometheus:

global:
    scrape_timeout: 10s
    evaluation_interval: 15s
scrape_configs:
    - job_name: 'remnawave'
      scheme: http
      metrics_path: /metrics
      static_configs:
          - targets: ['remnawave:3001']
      scrape_interval: 30s
      basic_auth:
          username: admin
          password: change_me

Webhook

Переменная Описание По умолчанию Возможные значения
WEBHOOK_ENABLED Включение/отключение webhook-уведомлений false true, false
WEBHOOK_URL URL вебхука (http:// или https://)
WEBHOOK_SECRET_HEADER Ключ для подписи, минимум 32 символа (a-z, 0-9, A-Z)
Информация:

Для генерации случайного пароля для вебхука используйте:

openssl rand -hex 64
Пример
IS_WEBHOOK_ENABLED=true
WEBHOOK_URL=https://yourpanel.com/api/webhook
WEBHOOK_SECRET_HEADER=strong_secret_key

Уведомления об использовании трафика

Переменная Описание По умолчанию Возможные значения
BANDWIDTH_USAGE_NOTIFICATIONS_ENABLED Включение/отключение уведомлений об использовании трафика false true, false
BANDWIDTH_USAGE_NOTIFICATIONS_THRESHOLD Порог для уведомлений (в порядке возрастания, пример: [60, 80], целые числа 25-95, до 5 значений)
Пример
BANDWIDTH_USAGE_NOTIFICATIONS_ENABLED=true
BANDWIDTH_USAGE_NOTIFICATIONS_THRESHOLD=[60, 80]

HWID

Переменная Описание По умолчанию
HWID_DEVICE_LIMIT_ENABLED Включение/отключение глобального ограничения устройств по HWID false
HWID_FALLBACK_DEVICE_LIMIT Резервное количество разрешенных устройств на пользователя
HWID_MAX_DEVICES_ANNOUNCE Сообщение при достижении лимита устройств или отсутствии HWID от клиента
Пример
HWID_DEVICE_LIMIT_ENABLED=true
HWID_FALLBACK_DEVICE_LIMIT=10
HWID_MAX_DEVICES_ANNOUNCE="Max devices reached"

Прочее

Переменная Описание По умолчанию
SHORT_UUID_LENGTH Длина генерируемого короткого UUID (подписка), 16-64 символа 16
IS_HTTP_LOGGING_ENABLED Включение/отключение логирования HTTP false
Пример
SHORT_UUID_LENGTH=16
IS_HTTP_LOGGING_ENABLED=true