環境変数設定ガイド
このドキュメントでは、New APIがサポートするすべての環境変数とその設定について説明します。これらの環境変数を設定することで、システムの動作をカスタマイズできます。
ヒント
New API は .env ファイルから環境変数を読み込むことをサポートしています。.env.example
ファイルを参照し、使用する際は .env に名前を変更してください。
基本設定
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
PORT | サービスリスニングポート | 3000 | PORT=8080 |
TZ | タイムゾーン設定 | - | TZ=America/New_York |
VERSION | 実行バージョン番号を上書き | - | VERSION=1.2.3 |
データベース設定
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
SQL_DSN | データベース接続文字列 | SQLite (one-api.db) | MySQL: SQL_DSN=root:123456@tcp(localhost:3306)/new-api | PostgreSQL: SQL_DSN=postgresql://root:123456@postgres:5432/new-api |
SQL_MAX_IDLE_CONNS | アイドル接続プールの最大接続数 | 100 | SQL_MAX_IDLE_CONNS=50 |
SQL_MAX_OPEN_CONNS | 接続プールの最大オープン接続数 | 1000 | SQL_MAX_OPEN_CONNS=500 |
SQL_MAX_LIFETIME | 接続の最大ライフタイム(秒) | 60 | SQL_MAX_LIFETIME=120 |
LOG_SQL_DSN | ログテーブル独立データベース接続文字列 | - | LOG_SQL_DSN=root:123456@tcp(localhost:3306)/oneapi_logs |
SQLITE_PATH | SQLiteデータベースパス | one-api.db | SQLITE_PATH=/var/lib/new-api/new-api.db |
キャッシュ設定
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
REDIS_CONN_STRING | Redis接続文字列 | - | REDIS_CONN_STRING=redis://default:redispw@localhost:6379 |
REDIS_POOL_SIZE | Redis接続プールサイズ | 10 | REDIS_POOL_SIZE=20 |
MEMORY_CACHE_ENABLED | メモリキャッシュを有効にするか(Redis有効化後に自動有効化) | false | MEMORY_CACHE_ENABLED=true |
SYNC_FREQUENCY | キャッシュとデータベースの同期頻度(秒) | 60 | SYNC_FREQUENCY=120 |
BATCH_UPDATE_ENABLED | データベースの一括更新集約を有効にする | false | BATCH_UPDATE_ENABLED=true |
BATCH_UPDATE_INTERVAL | 一括更新集約の時間間隔(秒) | 5 | BATCH_UPDATE_INTERVAL=10 |
マルチノードとセキュリティ設定
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
SESSION_SECRET | セッションキー(マルチマシンデプロイに必須) | - | SESSION_SECRET=your_session_secret |
CRYPTO_SECRET | 暗号化キー(データベースコンテンツを暗号化、デフォルトはSESSION_SECRETにフォールバック) | - | CRYPTO_SECRET=your_crypto_secret |
FRONTEND_BASE_URL | フロントエンドベースURL(スレーブノードで使用、未一致のルーティングをこのアドレスにリダイレクト) | - | FRONTEND_BASE_URL=https://<your-newapi-domain> |
NODE_TYPE | ノードタイプ | master | NODE_TYPE=slave |
TLS_INSECURE_SKIP_VERIFY | グローバルTLS証明書検証をスキップ | false | TLS_INSECURE_SKIP_VERIFY=true |
TRUSTED_REDIRECT_DOMAINS | 信頼されたリダイレクトドメインリスト(カンマ区切り) | - | TRUSTED_REDIRECT_DOMAINS=example.com,api.example.com |
SESSION_SECRET の注意事項
SESSION_SECRET を random_string に設定することはできません。設定するとプログラムは起動を拒否します。マルチマシンデプロイの場合、すべてのノードで同じキーを使用する必要があります。
クラスターデプロイ
これらの環境変数を使用して完全なクラスターデプロイを構築する方法については、クラスターデプロイガイドを参照してください。
ユーザーおよびトークン設定
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
GENERATE_DEFAULT_TOKEN | 新規登録ユーザーに初期トークンを生成 | false | GENERATE_DEFAULT_TOKEN=true |
NOTIFICATION_LIMIT_DURATION_MINUTE | 通知制限の持続時間(分) | 10 | NOTIFICATION_LIMIT_DURATION_MINUTE=15 |
NOTIFY_LIMIT_COUNT | 指定された持続時間内の最大通知数 | 2 | NOTIFY_LIMIT_COUNT=3 |
リクエスト制限設定
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
GLOBAL_API_RATE_LIMIT_ENABLE | グローバルAPIレート制限スイッチ | true | GLOBAL_API_RATE_LIMIT_ENABLE=false |
GLOBAL_API_RATE_LIMIT | グローバルAPIレート制限(単一IP) | 180 | GLOBAL_API_RATE_LIMIT=100 |
GLOBAL_API_RATE_LIMIT_DURATION | グローバルAPIレート制限ウィンドウ(秒) | 180 | GLOBAL_API_RATE_LIMIT_DURATION=120 |
GLOBAL_WEB_RATE_LIMIT_ENABLE | グローバルWebレート制限スイッチ | true | GLOBAL_WEB_RATE_LIMIT_ENABLE=false |
GLOBAL_WEB_RATE_LIMIT | グローバルWebレート制限(単一IP) | 60 | GLOBAL_WEB_RATE_LIMIT=30 |
GLOBAL_WEB_RATE_LIMIT_DURATION | グローバルWebレート制限ウィンドウ(秒) | 180 | GLOBAL_WEB_RATE_LIMIT_DURATION=120 |
CRITICAL_RATE_LIMIT_ENABLE | クリティカル操作レート制限スイッチ | true | CRITICAL_RATE_LIMIT_ENABLE=false |
CRITICAL_RATE_LIMIT | クリティカル操作レート制限回数 | 20 | CRITICAL_RATE_LIMIT=10 |
CRITICAL_RATE_LIMIT_DURATION | クリティカル操作レート制限ウィンドウ(秒) | 1200 | CRITICAL_RATE_LIMIT_DURATION=600 |
リレーとプロキシ設定
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
RELAY_TIMEOUT | リクエストタイムアウト(秒)、0は無制限 | 0 | RELAY_TIMEOUT=60 |
STREAMING_TIMEOUT | ストリーミングの一回応答のタイムアウト時間(秒) | 300 | STREAMING_TIMEOUT=120 |
RELAY_MAX_IDLE_CONNS | リレーHTTPクライアントプールの最大アイドル接続数 | 500 | RELAY_MAX_IDLE_CONNS=1000 |
RELAY_MAX_IDLE_CONNS_PER_HOST | リレーHTTPクライアントプールの一ホストあたりの最大アイドル接続数 | 100 | RELAY_MAX_IDLE_CONNS_PER_HOST=200 |
MAX_FILE_DOWNLOAD_MB | 最大ファイルダウンロードサイズ(MB) | 64 | MAX_FILE_DOWNLOAD_MB=128 |
MAX_REQUEST_BODY_MB | 最大リクエストボディサイズ(MB、解凍後;zip bomb/OOM防止) | 128 | MAX_REQUEST_BODY_MB=256 |
STREAM_SCANNER_MAX_BUFFER_MB | SSEストリームスキャンバッファの最大サイズ(MB) | 64 | STREAM_SCANNER_MAX_BUFFER_MB=128 |
RELAY_TIMEOUT 設定の警告
環境変数 RELAY_TIMEOUT を設定する際は注意してください。短すぎると以下の問題が発生する可能性があります:
-
アップストリームAPIはリクエストを完了し課金済みだが、ローカルではタイムアウトにより課金が完了していない
-
課金の不整合が発生し、システム損失につながる可能性がある
-
ご自身で何をしているか理解している場合を除き、設定しないことを推奨します
チャネル管理設定
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
CHANNEL_UPDATE_FREQUENCY | チャネル残高を定期的に更新(分) | -(設定しない場合は無効) | CHANNEL_UPDATE_FREQUENCY=1440 |
CHANNEL_TEST_FREQUENCY | チャネルを定期的にチェック(分)、データベース設定を上書き | -(設定しない場合はデータベース設定を使用) | CHANNEL_TEST_FREQUENCY=1440 |
POLLING_INTERVAL | リクエストポーリング間隔(秒) | 0 | POLLING_INTERVAL=5 |
チャネルアップストリームモデル同期
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
CHANNEL_UPSTREAM_MODEL_UPDATE_TASK_ENABLED | アップストリームプロバイダーのモデルリストの定期同期を有効にする | true | CHANNEL_UPSTREAM_MODEL_UPDATE_TASK_ENABLED=false |
CHANNEL_UPSTREAM_MODEL_UPDATE_TASK_INTERVAL_MINUTES | モデルリスト同期間隔(分) | 30 | CHANNEL_UPSTREAM_MODEL_UPDATE_TASK_INTERVAL_MINUTES=60 |
CHANNEL_UPSTREAM_MODEL_UPDATE_MIN_CHECK_INTERVAL_SECONDS | 単一チャネルの最小チェック間隔(秒) | 300 | CHANNEL_UPSTREAM_MODEL_UPDATE_MIN_CHECK_INTERVAL_SECONDS=600 |
モデルとリクエスト処理設定
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
FORCE_STREAM_OPTION | クライアントのstream_optionsパラメータを上書きし、ストリーミング使用量情報を強制的に取得する | true | FORCE_STREAM_OPTION=false |
CountToken | ローカルトークンカウントを有効にするか | true | CountToken=false |
GET_MEDIA_TOKEN | ストリーミングモードで画像/音声トークンをカウントするか | true | GET_MEDIA_TOKEN=false |
GET_MEDIA_TOKEN_NOT_STREAM | 非ストリーミングモードで画像/音声トークンをカウントするか | false | GET_MEDIA_TOKEN_NOT_STREAM=true |
非同期タスク設定
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
UPDATE_TASK | 非同期タスクのポーリング更新(MJ、Sunoなど)を有効にするか | true | UPDATE_TASK=false |
TASK_QUERY_LIMIT | 各ポーリングでクエリする最大タスク数 | 1000 | TASK_QUERY_LIMIT=500 |
TASK_TIMEOUT_MINUTES | 非同期タスクのタイムアウト(分)、タイムアウト後に失敗とマークされ返金、0は無効 | 1440 | TASK_TIMEOUT_MINUTES=720 |
TASK_PRICE_PATCH | タスク価格パッチ、設定されたモデルは回数制課金のみ、モデル名は英語のカンマで区切る | - | TASK_PRICE_PATCH=sora-2,sora-2-pro |
特定モデル設定
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
AZURE_DEFAULT_API_VERSION | AzureチャネルのデフォルトAPIバージョン | 2025-04-01-preview | AZURE_DEFAULT_API_VERSION=2023-05-15 |
COHERE_SAFETY_SETTING | Cohereモデルのセキュリティ設定 | NONE | COHERE_SAFETY_SETTING=CONTEXTUAL |
DIFY_DEBUG | Difyチャネルのワークフローとノード情報を出力 | true | DIFY_DEBUG=false |
サブスクリプションキャッシュ設定
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
SUBSCRIPTION_PLAN_CACHE_TTL | サブスクリプションプランキャッシュTTL(秒) | 300 | SUBSCRIPTION_PLAN_CACHE_TTL=600 |
SUBSCRIPTION_PLAN_INFO_CACHE_TTL | サブスクリプションプラン詳細キャッシュTTL(秒) | 120 | SUBSCRIPTION_PLAN_INFO_CACHE_TTL=300 |
SUBSCRIPTION_PLAN_CACHE_CAP | サブスクリプションプランキャッシュ最大容量 | 5000 | SUBSCRIPTION_PLAN_CACHE_CAP=10000 |
SUBSCRIPTION_PLAN_INFO_CACHE_CAP | サブスクリプションプラン詳細キャッシュ最大容量 | 10000 | SUBSCRIPTION_PLAN_INFO_CACHE_CAP=20000 |
その他の設定
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
ERROR_LOG_ENABLED | エラーログを記録し、フロントエンドに表示するか | false | ERROR_LOG_ENABLED=true |
分析統計
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
UMAMI_WEBSITE_ID | UmamiサイトID | - | UMAMI_WEBSITE_ID=xxxx-xxxx |
UMAMI_SCRIPT_URL | Umamiスクリプトアドレス | https://analytics.umami.is/script.js | UMAMI_SCRIPT_URL=https://umami.example.com/script.js |
GOOGLE_ANALYTICS_ID | Google Analytics 4サイトID | - | GOOGLE_ANALYTICS_ID=G-XXXXXXX |
メタデータ同期
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
SYNC_UPSTREAM_BASE | モデル/ベンダーメタデータアップストリームアドレス | https://basellm.github.io/llm-metadata | SYNC_UPSTREAM_BASE=https://mirror.example.com/llm-metadata |
SYNC_HTTP_TIMEOUT_SECONDS | 同期HTTPタイムアウト(秒) | 10 | SYNC_HTTP_TIMEOUT_SECONDS=15 |
SYNC_HTTP_RETRY | 同期リトライ回数 | 3 | SYNC_HTTP_RETRY=5 |
SYNC_HTTP_MAX_MB | 応答ボディ最大サイズ(MB) | 10 | SYNC_HTTP_MAX_MB=20 |
フロントエンド設定
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
VITE_REACT_APP_SERVER_URL | フロントエンドがバックエンドにリクエストするベースアドレス(コンパイル時に有効) | - | VITE_REACT_APP_SERVER_URL=https://api.example.com |
コンパイル時変数
VITE_REACT_APP_SERVER_URL は Vite のコンパイル時に注入されるフロントエンド変数であり、フロントエンドのビルド時にのみ有効で、実行時には変更できません。
Pyroscope 継続的パフォーマンス分析
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
PYROSCOPE_URL | Pyroscopeサーバーアドレス、空欄で無効 | - | PYROSCOPE_URL=http://pyroscope:4040 |
PYROSCOPE_APP_NAME | レポートするアプリケーション名 | new-api | PYROSCOPE_APP_NAME=my-api |
PYROSCOPE_BASIC_AUTH_USER | Pyroscope Basic Authユーザー名 | - | PYROSCOPE_BASIC_AUTH_USER=admin |
PYROSCOPE_BASIC_AUTH_PASSWORD | Pyroscope Basic Authパスワード | - | PYROSCOPE_BASIC_AUTH_PASSWORD=secret |
HOSTNAME | レポートするホスト名ラベル | new-api | HOSTNAME=node-1 |
PYROSCOPE_MUTEX_RATE | ミューテックス分析サンプリングレート | 5 | PYROSCOPE_MUTEX_RATE=10 |
PYROSCOPE_BLOCK_RATE | ブロッキング分析サンプリングレート | 5 | PYROSCOPE_BLOCK_RATE=10 |
LinuxDo OAuth
通常、変更は不要です。
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
LINUX_DO_TOKEN_ENDPOINT | LinuxDo トークンエンドポイント | https://connect.linux.do/oauth2/token | LINUX_DO_TOKEN_ENDPOINT=https://connect.linux.do/oauth2/token |
LINUX_DO_USER_ENDPOINT | LinuxDo ユーザーエンドポイント | https://connect.linux.do/api/user | LINUX_DO_USER_ENDPOINT=https://connect.linux.do/api/user |
デバッグ関連
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
DEBUG | デバッグモードを有効にする(GORMデバッグ出力を含む) | false | DEBUG=true |
GIN_MODE | Gin実行モード | release | GIN_MODE=debug |
ENABLE_PPROF | pprofパフォーマンス分析を有効にする(ポート8005) | false | ENABLE_PPROF=true |
非推奨の環境変数
以下の環境変数は非推奨になりました。システム設定画面の対応するオプションを使用してください:
| 環境変数 | 代替方法 |
|---|---|
GEMINI_MODEL_MAP | システム設定 - モデル関連設定で設定してください |
GEMINI_SAFETY_SETTING | システム設定 - モデル関連設定で設定してください |
GEMINI_VISION_MAX_IMAGE_NUM | システム設定 - モデル関連設定で設定してください |
マルチマシンデプロイの例
マルチマシンデプロイのシナリオでは、以下の環境変数を設定する必要があります:
マスターノード設定
# データベース設定 - リモートデータベースを使用
SQL_DSN=root:password@tcp(db-server:3306)/oneapi
# セキュリティ設定
SESSION_SECRET=your_unique_session_secret
CRYPTO_SECRET=your_unique_crypto_secret
# Redisキャッシュ設定
REDIS_CONN_STRING=redis://default:password@redis-server:6379スレーブノード設定
# データベース設定 - 同じリモートデータベースを使用
SQL_DSN=root:password@tcp(db-server:3306)/oneapi
# セキュリティ設定 - マスターノードと同じキーを使用
SESSION_SECRET=your_unique_session_secret
CRYPTO_SECRET=your_unique_crypto_secret
# Redisキャッシュ設定 - マスターノードと同じRedisを使用
REDIS_CONN_STRING=redis://default:password@redis-server:6379
# ノードタイプ設定
NODE_TYPE=slave
# オプション:フロントエンドベースURL
# FRONTEND_BASE_URL=https://<your-newapi-domain>
# オプション:同期頻度
SYNC_FREQUENCY=60完全なクラスター設定
これは基本的なマルチノード設定の例にすぎません。完全なクラスターデプロイ設定、アーキテクチャの説明、およびベストプラクティスについては、クラスターデプロイガイドを参照してください。
Docker Composeにおける環境変数の例
以下は、Docker Compose設定ファイルで環境変数を設定する簡単な例です:
services:
new-api:
image: calciumion/new-api:latest
environment:
- TZ=Asia/Shanghai
- SQL_DSN=root:123456@tcp(mysql:3306)/oneapi
- REDIS_CONN_STRING=redis://default:redispw@redis:6379
- SESSION_SECRET=your_unique_session_secret
- CRYPTO_SECRET=your_unique_crypto_secret
- MEMORY_CACHE_ENABLED=true
- GENERATE_DEFAULT_TOKEN=true
- STREAMING_TIMEOUT=120
- CHANNEL_UPDATE_FREQUENCY=1440より多くの環境変数設定オプションを含む完全なDocker Compose設定については、Docker Compose設定説明ドキュメントを参照してください。
このガイドはいかがですか?
最終更新