Переменные окружения
[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