メインコンテンツまでスキップ

環境変数

警告

環境変数を変更するには、Remnawaveコンテナを再作成する必要があります。
コンテナを単に再起動するだけでは、コンテナ内の環境は置き換えられません!

docker composeを使用してコンテナを再作成するには、docker compose down && docker compose up -dを実行してください。

環境変数の変更

.envファイルを編集することで環境変数を変更できます。おそらく/opt/remnawaveにあります。

.envファイルを編集
cd /opt/remnawave && nano .env

ポート

変数説明デフォルト
APP_PORTRemnawaveパネルが実行されるポート3000
METRICS_PORTMetricsエンドポイントが実行されるポート3001
.envファイル
APP_PORT=3000
METRICS_PORT=3001

APIスケーリング

実行するAPIインスタンスの数。

可能な値:

  • max(すべてのコアでインスタンスを起動)
  • <number>(特定のコア数でインスタンスを起動)
  • -1(すべてのコア - 1でインスタンスを起動)

1つのインスタンスのみを起動するにはデフォルト値のままにしてください。

ほとんどのユーザーはこの値を変更する必要はありませんが、40,000人以上のユーザーでより良いパフォーマンスを達成するのに役立つ場合があります。

警告

マシンのCPUコア数より大きい数値に設定しないでください。

変数説明デフォルト
API_INSTANCES実行するAPIインスタンスの数1
.envファイル
API_INSTANCES=1

Redis

変数説明デフォルト必須
REDIS_HOSTRedisサーバーのホストremnawave-redisはい
REDIS_PORTRedisサーバーのポート6379はい
REDIS_DBRedisサーバーのデータベース0いいえ
REDIS_PASSWORDRedisサーバーのパスワードいいえ
REDIS_SOCKETRedisサーバーのソケットいいえ
.envファイル
REDIS_HOST=remnawave-redis
REDIS_PORT=6379

データベース

以下の変数はRemnawaveではなく、データベースコンテナによって使用されます。

変数説明デフォルト必須
POSTGRES_USERPostgresサーバーのユーザー名postgresいいえ
POSTGRES_PASSWORDPostgresサーバーのパスワードpostgresいいえ
POSTGRES_DBPostgresサーバーのデータベースpostgresいいえ

RemnawaveはPostgreSQL URLを使用してデータベースに接続します。

postgresql://{user}:{password}@{host}:{port}/{database}
DATABASE_URL の例
DATABASE_URL="postgresql://postgres:postgres@remnawave-db:5432/postgres"
.envファイル
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=postgres

DATABASE_URL="postgresql://postgres:postgres@remnawave-db:5432/postgres"

シークレットキー

最小64文字のシークレットを作成するためにランダム文字列ジェネレーターを使用することをお勧めします。

危険

本番環境ではデフォルトの資格情報を使用しないでください。 強力なシークレットを必ず生成してください!

シークレットを生成
openssl rand -hex 64
変数説明デフォルト必須
JWT_AUTH_SECRET認証JWTのシークレットキーchange_meはい
JWT_API_TOKENS_SECRETAPIトークンJWTのシークレットキーchange_meはい
.envファイル
JWT_AUTH_SECRET=strong_secret_key
JWT_API_TOKENS_SECRET=strong_secret_key

Telegram通知

各通知変数は統一フォーマットを使用します:chat_id:thread_idthread_idは省略可能。

変数説明デフォルト可能な値
IS_TELEGRAM_NOTIFICATIONS_ENABLEDTelegram通知を無効/有効にするfalsetrue, false
TELEGRAM_BOT_TOKENTelegramボットのToken
TELEGRAM_BOT_API_ROOTカスタムTelegram Bot APIルートURL(オプション)https://api.telegram.org
TELEGRAM_BOT_PROXYTelegramボット用プロキシ(オプション)protocol://user:password@host:port
TELEGRAM_NOTIFY_USERSユーザーイベントに関する通知chat_idまたはchat_id:thread_id
TELEGRAM_NOTIFY_NODESノードイベントに関する通知chat_idまたはchat_id:thread_id
TELEGRAM_NOTIFY_CRMCRMイベントに関する通知chat_idまたはchat_id:thread_id
TELEGRAM_NOTIFY_SERVICEサービスイベントに関する通知chat_idまたはchat_id:thread_id
TELEGRAM_NOTIFY_TBLOCKERTorrent Blockerイベントに関する通知chat_idまたはchat_id:thread_id
注記

TelegramグループチャットIDは常に-100で始まります。

.envファイル

# Telegram通知を無効/有効にする
IS_TELEGRAM_NOTIFICATIONS_ENABLED=false

# Telegramボットトークン
TELEGRAM_BOT_TOKEN=change_me

# オプション:Telegramボット用プロキシ
# TELEGRAM_BOT_PROXY=socks5://user:password@host:port

# 通知(フォーマット:chat_idまたはchat_id:thread_id)
TELEGRAM_NOTIFY_USERS=change_me
TELEGRAM_NOTIFY_NODES=change_me
TELEGRAM_NOTIFY_CRM=change_me
TELEGRAM_NOTIFY_SERVICE=change_me
TELEGRAM_NOTIFY_TBLOCKER=change_me

ドメイン

変数説明デフォルト必須
FRONT_END_DOMAINRemnawaveパネルのドメイン。CORSヘッダーの設定に使用。*はい
変数説明デフォルト必須
SUB_PUBLIC_DOMAIN公開サブスクリプションURLのドメインとパスexample.com/api/subはい
変数説明デフォルト必須
PANEL_DOMAIN直接リンク生成用パネルドメイン(例:インラインボタン付きのTelegram通知)いいえ

SUB_PUBLIC_DOMAINはRestAPIレスポンス/ダッシュボードUIで公開サブスクリプションURLを設定するために使用されます。

ヒント

パネルと一緒に使用する場合は、単にyourpanel.com/api/subに設定してください

.envファイル
FRONT_END_DOMAIN=yourpanel.com
SUB_PUBLIC_DOMAIN=yourpanel.com/api/sub
PANEL_DOMAIN=yourpanel.com

ドキュメント

変数説明デフォルト可能な値
IS_DOCS_ENABLEDドキュメントを無効/有効にするfalsetrue, false

IS_DOCS_ENABLEDはドキュメントを無効/有効にするために使用されます。

ヒント

管理ダッシュボードのAPI Keysページ(IS_DOCS_ENABLEDtrueに設定されている場合)でドキュメントへのクイックリンクを使用できます。

変数説明デフォルト
SWAGGER_PATHSwagger UIへのパス/docs
SCALAR_PATHScalar UIへのパス/scalar
.envファイル
IS_DOCS_ENABLED=true
SWAGGER_PATH=/docs
SCALAR_PATH=/scalar

Prometheusメトリクス

ヒント

以下のコマンドを使用してメトリクス用のランダムパスワードを生成できます:

openssl rand -hex 64
変数説明デフォルト
METRICS_USERメトリクスのユーザーadmin
METRICS_PASSメトリクスのパスワードchange_me
.envファイル
METRICS_USER=admin
METRICS_PASS=change_me

Prometheusの設定例:

prometheus.yml
global:
# scrape_interval: 15s
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

収集されたメトリクスを視覚化するために既製のGrafanaダッシュボードを使用できます:Remnawave Panel Dashboard

Prometheusメトリクスのサンプル
# HELP remnawave_node_online_users Number of online users on a node
# TYPE remnawave_node_online_users gauge
remnawave_node_online_users{node_uuid="d86d8c63-944c-4398-9cf4-c3882a54a5d5",app="remnawave"} 0

Webhook

変数説明デフォルト可能な値
WEBHOOK_ENABLEDWebhook通知を有効/無効にするfalsetrue, false
WEBHOOK_URLWebhookのURL、http://またはhttps://が使用可能
WEBHOOK_SECRET_HEADER署名用のキー、最低32文字。a-z、0-9、A-Zのみ使用可能。
ヒント

以下のコマンドを使用してWebhookシークレット用のランダムパスワードを生成できます:

openssl rand -hex 64
.envファイル
WEBHOOK_ENABLED=true
WEBHOOK_URL=https://your-server.com/webhook-path
WEBHOOK_SECRET_HEADER=strong_secret_key

帯域幅使用量通知

変数説明デフォルト可能な値
BANDWIDTH_USAGE_NOTIFICATIONS_ENABLED帯域幅使用量通知を有効/無効にするfalsetrue, false
BANDWIDTH_USAGE_NOTIFICATIONS_THRESHOLD帯域幅使用量通知のしきい値。昇順のみ(例:[60, 80])、整数の有効な配列(min: 25, max: 95)である必要があります。最大5つの値。
.envファイル
BANDWIDTH_USAGE_NOTIFICATIONS_ENABLED=true
BANDWIDTH_USAGE_NOTIFICATIONS_THRESHOLD=[60, 80]

未接続ユーザー通知

変数説明デフォルト可能な値
NOT_CONNECTED_USERS_NOTIFICATIONS_ENABLED未接続ユーザー通知を有効/無効にするfalsetrue, false
NOT_CONNECTED_USERS_NOTIFICATIONS_AFTER_HOURS接続していないユーザーへの通知を送信するまでの時間。昇順のみ(例:[6, 12, 24])、整数の有効な配列(min: 1, max: 168)である必要があります。最大3つの値。
.envファイル
### 未接続ユーザー通知(webhook、telegram)
NOT_CONNECTED_USERS_NOTIFICATIONS_ENABLED=false
# 昇順のみ(例:[6, 12, 24])、整数の有効な配列(min: 1, max: 168)である必要があります。最大3つの値。
# 各値はユーザー作成(user.createdAt)から経過したHOURSを表します
NOT_CONNECTED_USERS_NOTIFICATIONS_AFTER_HOURS=[6, 24, 48]

その他

変数説明デフォルト可能な値
SHORT_UUID_LENGTH生成されるショートUUID(サブスクリプション)の長さ。最小16、最大6416
IS_HTTP_LOGGING_ENABLEDHTTPログを有効/無効にするfalsetrue, false
ENABLE_DEBUG_LOGSデバッグログを有効/無効にするfalsetrue, false
JWT_AUTH_LIFETIME認証JWTの有効期間(時間)。12から168の値が可能。12
SERVICE_CLEAN_USAGE_HISTORY使用履歴のクリーニングを有効/無効にするfalsetrue, false
SERVICE_DISABLE_USER_USAGE_RECORDSユーザー使用データの記録を無効にするfalsetrue, false
USER_USAGE_IGNORE_BELOW_BYTESこのしきい値以下のユーザー使用量を無視する(バイト単位、最大1048576)0
.envファイル
SHORT_UUID_LENGTH=16
IS_HTTP_LOGGING_ENABLED=true
ENABLE_DEBUG_LOGS=false
JWT_AUTH_LIFETIME=12
SERVICE_CLEAN_USAGE_HISTORY=false
SERVICE_DISABLE_USER_USAGE_RECORDS=false
USER_USAGE_IGNORE_BELOW_BYTES=0