環境変数
環境変数を変更するには、Remnawaveコンテナを再作成する必要があります。
コンテナを単に再起動するだけでは、コンテナ内の環境は置き換えられません!
docker composeを使用してコンテナを再作成するには、docker compose down && docker compose up -dを実行してください。
環境変数の変更
.envファイルを編集することで環境変数を変更できます。おそらく/opt/remnawaveにあります。
cd /opt/remnawave && nano .env
ポート
| 変数 | 説明 | デフォルト |
|---|---|---|
APP_PORT | Remnawaveパネルが実行されるポート | 3000 |
METRICS_PORT | Metricsエンドポイントが実行されるポート | 3001 |
例
APP_PORT=3000
METRICS_PORT=3001
APIスケーリング
実行するAPIインスタンスの数。
可能な値:
max(すべてのコアでインスタンスを起動)<number>(特定のコア数でインスタンスを起動)-1(すべてのコア - 1でインスタンスを起動)
1つのインスタンスのみを起動するにはデフォルト値のままにしてください。
ほとんどのユーザーはこの値を変更する必要はありませんが、40,000人以上のユーザーでより良いパフォーマンスを達成するのに役立つ場合があります。
マシンのCPUコア数より大きい数値に設定しないでください。
| 変数 | 説明 | デフォルト |
|---|---|---|
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_SOCKET | Redisサーバーのソケット | いいえ |
例
REDIS_HOST=remnawave-redis
REDIS_PORT=6379
データベース
以下の変数はRemnawaveではなく、データベースコンテナによって使用されます。
| 変数 | 説明 | デフォルト | 必須 |
|---|---|---|---|
POSTGRES_USER | Postgresサーバーのユーザー名 | postgres | いいえ |
POSTGRES_PASSWORD | Postgresサーバーのパスワード | postgres | いいえ |
POSTGRES_DB | Postgresサーバーのデータベース | postgres | いいえ |
RemnawaveはPostgreSQL URLを使用してデータベースに接続します。
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文字のシークレットを作成するためにランダム文字列ジェネレーターを使用することをお勧めします。
本番環境ではデフォルトの資格情報を使用しないでください。 強力なシークレットを必ず生成してください!
openssl rand -hex 64
| 変数 | 説明 | デフォルト | 必須 |
|---|---|---|---|
JWT_AUTH_SECRET | 認証JWTのシークレットキー | change_me | はい |
JWT_API_TOKENS_SECRET | APIトークンJWTのシークレットキー | change_me | はい |
例
JWT_AUTH_SECRET=strong_secret_key
JWT_API_TOKENS_SECRET=strong_secret_key
Telegram通知
各通知変数は統一フォーマットを使用します:chat_id:thread_id、thread_idは省略可能。
| 変数 | 説明 | デフォルト | 可能な値 |
|---|---|---|---|
IS_TELEGRAM_NOTIFICATIONS_ENABLED | Telegram通知を無効/有効にする | false | true, false |
TELEGRAM_BOT_TOKEN | TelegramボットのToken | ||
TELEGRAM_BOT_API_ROOT | カスタムTelegram Bot APIルートURL(オプション) | https://api.telegram.org | |
TELEGRAM_BOT_PROXY | Telegramボット用プロキシ(オプション) | 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_CRM | CRMイベントに関する通知 | chat_idまたはchat_id:thread_id | |
TELEGRAM_NOTIFY_SERVICE | サービスイベントに関する通知 | chat_idまたはchat_id:thread_id | |
TELEGRAM_NOTIFY_TBLOCKER | Torrent Blockerイベントに関する通知 | chat_idまたはchat_id:thread_id |
TelegramグループチャットIDは常に-100で始まります。
例
# 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_DOMAIN | Remnawaveパネルのドメイン。CORSヘッダーの設定に使用。 | * | はい |
| 変数 | 説明 | デフォルト | 必須 |
|---|---|---|---|
SUB_PUBLIC_DOMAIN | 公開サブスクリプションURLのドメインとパス | example.com/api/sub | はい |
| 変数 | 説明 | デフォルト | 必須 |
|---|---|---|---|
PANEL_DOMAIN | 直接リンク生成用パネルドメイン(例:インラインボタン付きのTelegram通知) | いいえ |
SUB_PUBLIC_DOMAINはRestAPIレスポンス/ダッシュボードUIで公開サブスクリプションURLを設定するために使用されます。
パネルと一緒に使用する場合は、単にyourpanel.com/api/subに設定してください
例
FRONT_END_DOMAIN=yourpanel.com
SUB_PUBLIC_DOMAIN=yourpanel.com/api/sub
PANEL_DOMAIN=yourpanel.com
ドキュメント
| 変数 | 説明 | デフォルト | 可能な値 |
|---|---|---|---|
IS_DOCS_ENABLED | ドキュメントを無効/有効にする | false | true, false |
IS_DOCS_ENABLEDはドキュメントを無効/有効にするために使用されます。
管理ダッシュボードのAPI Keysページ(IS_DOCS_ENABLEDがtrueに設定されている場合)でドキュメントへのクイックリンクを使用できます。
| 変数 | 説明 | デフォルト |
|---|---|---|
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 |
例
METRICS_USER=admin
METRICS_PASS=change_me
Prometheusの設定例:
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_ENABLED | Webhook通知を有効/無効にする | false | true, false |
WEBHOOK_URL | WebhookのURL、http://またはhttps://が使用可能 | ||
WEBHOOK_SECRET_HEADER | 署名用のキー、最低32文字。a-z、0-9、A-Zのみ使用可能。 |
以下のコマンドを使用してWebhookシークレット用のランダムパスワードを生成できます:
openssl rand -hex 64
例
WEBHOOK_ENABLED=true
WEBHOOK_URL=https://your-server.com/webhook-path
WEBHOOK_SECRET_HEADER=strong_secret_key
帯域幅使用量通知
| 変数 | 説明 | デフォルト | 可能な値 |
|---|---|---|---|
BANDWIDTH_USAGE_NOTIFICATIONS_ENABLED | 帯域幅使用量通知を有効/無効にする | false | true, false |
BANDWIDTH_USAGE_NOTIFICATIONS_THRESHOLD | 帯域幅使用量通知のしきい値。昇順のみ(例:[60, 80])、整数の有効な配列(min: 25, max: 95)である必要があります。最大5つの値。 |
例
BANDWIDTH_USAGE_NOTIFICATIONS_ENABLED=true
BANDWIDTH_USAGE_NOTIFICATIONS_THRESHOLD=[60, 80]
未接続ユーザー通知
| 変数 | 説明 | デフォルト | 可能な値 |
|---|---|---|---|
NOT_CONNECTED_USERS_NOTIFICATIONS_ENABLED | 未接続ユーザー通知を有効/無効にする | false | true, false |
NOT_CONNECTED_USERS_NOTIFICATIONS_AFTER_HOURS | 接続していないユーザーへの通知を送信するまでの時間。昇順のみ(例:[6, 12, 24])、整数の有効な配列(min: 1, max: 168)である必要があります。最大3つの値。 |
例
### 未接続ユーザー通知(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、最大64 | 16 | |
IS_HTTP_LOGGING_ENABLED | HTTPログを有効/無効にする | false | true, false |
ENABLE_DEBUG_LOGS | デバッグログを有効/無効にする | false | true, false |
JWT_AUTH_LIFETIME | 認証JWTの有効期間(時間)。12から168の値が可能。 | 12 | |
SERVICE_CLEAN_USAGE_HISTORY | 使用履歴のクリーニングを有効/無効にする | false | true, false |
SERVICE_DISABLE_USER_USAGE_RECORDS | ユーザー使用データの記録を無効にする | false | true, false |
USER_USAGE_IGNORE_BELOW_BYTES | このしきい値以下のユーザー使用量を無視する(バイト単位、最大1048576) | 0 |
例
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