文档焕新,旧文档请访问 doc.newapi.pro
New APINew API
使用指南部署安装API 参考AI 应用Skills帮助支持商务合作

环境变量配置指南

本文档提供了New API支持的所有环境变量及其配置说明。您可以通过设置这些环境变量来自定义系统的行为。

提示

New API 支持从 .env 文件中读取环境变量,请参照 .env.example 文件,使用时请将其重命名为 .env

基本配置

环境变量说明默认值示例
PORT服务监听端口3000PORT=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空闲连接池最大连接数100SQL_MAX_IDLE_CONNS=50
SQL_MAX_OPEN_CONNS连接池最大打开连接数1000SQL_MAX_OPEN_CONNS=500
SQL_MAX_LIFETIME连接最大生命周期(秒)60SQL_MAX_LIFETIME=120
LOG_SQL_DSN日志表独立数据库连接字符串-LOG_SQL_DSN=root:123456@tcp(localhost:3306)/oneapi_logs
SQLITE_PATHSQLite数据库路径one-api.dbSQLITE_PATH=/var/lib/new-api/new-api.db

缓存配置

环境变量说明默认值示例
REDIS_CONN_STRINGRedis连接字符串-REDIS_CONN_STRING=redis://default:redispw@localhost:6379
REDIS_POOL_SIZERedis连接池大小10REDIS_POOL_SIZE=20
MEMORY_CACHE_ENABLED是否启用内存缓存(启用Redis后自动启用)falseMEMORY_CACHE_ENABLED=true
SYNC_FREQUENCY缓存与数据库同步频率(秒)60SYNC_FREQUENCY=120
BATCH_UPDATE_ENABLED启用数据库批量更新聚合falseBATCH_UPDATE_ENABLED=true
BATCH_UPDATE_INTERVAL批量更新聚合时间间隔(秒)5BATCH_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-domain.com
NODE_TYPE节点类型masterNODE_TYPE=slave
TLS_INSECURE_SKIP_VERIFY全局跳过TLS证书验证falseTLS_INSECURE_SKIP_VERIFY=true
TRUSTED_REDIRECT_DOMAINS受信任的重定向域名列表(逗号分隔)-TRUSTED_REDIRECT_DOMAINS=example.com,api.example.com

SESSION_SECRET 注意事项

SESSION_SECRET 不可设置为 random_string,否则程序将拒绝启动。多机部署时所有节点必须使用相同的密钥。

集群部署

关于如何使用这些环境变量构建完整的集群部署,请参考集群部署指南

用户及令牌配置

环境变量说明默认值示例
GENERATE_DEFAULT_TOKEN为新注册用户生成初始令牌falseGENERATE_DEFAULT_TOKEN=true
NOTIFICATION_LIMIT_DURATION_MINUTE通知限制的持续时间(分钟)10NOTIFICATION_LIMIT_DURATION_MINUTE=15
NOTIFY_LIMIT_COUNT指定持续时间内的最大通知数量2NOTIFY_LIMIT_COUNT=3

请求限制配置

环境变量说明默认值示例
GLOBAL_API_RATE_LIMIT_ENABLE全局API速率限制开关trueGLOBAL_API_RATE_LIMIT_ENABLE=false
GLOBAL_API_RATE_LIMIT全局API速率限制(单IP)180GLOBAL_API_RATE_LIMIT=100
GLOBAL_API_RATE_LIMIT_DURATION全局API速率限制窗口(秒)180GLOBAL_API_RATE_LIMIT_DURATION=120
GLOBAL_WEB_RATE_LIMIT_ENABLE全局Web速率限制开关trueGLOBAL_WEB_RATE_LIMIT_ENABLE=false
GLOBAL_WEB_RATE_LIMIT全局Web速率限制(单IP)60GLOBAL_WEB_RATE_LIMIT=30
GLOBAL_WEB_RATE_LIMIT_DURATION全局Web速率限制窗口(秒)180GLOBAL_WEB_RATE_LIMIT_DURATION=120
CRITICAL_RATE_LIMIT_ENABLE关键操作速率限制开关trueCRITICAL_RATE_LIMIT_ENABLE=false
CRITICAL_RATE_LIMIT关键操作速率限制次数20CRITICAL_RATE_LIMIT=10
CRITICAL_RATE_LIMIT_DURATION关键操作速率限制窗口(秒)1200CRITICAL_RATE_LIMIT_DURATION=600

中继与代理配置

环境变量说明默认值示例
RELAY_TIMEOUT中继请求超时时间(秒),0为不限0RELAY_TIMEOUT=60
STREAMING_TIMEOUT流式一次回复的超时时间(秒)300STREAMING_TIMEOUT=120
RELAY_MAX_IDLE_CONNS中继HTTP客户端池最大空闲连接数500RELAY_MAX_IDLE_CONNS=1000
RELAY_MAX_IDLE_CONNS_PER_HOST中继HTTP客户端池每主机最大空闲连接数100RELAY_MAX_IDLE_CONNS_PER_HOST=200
MAX_FILE_DOWNLOAD_MB最大文件下载大小(MB)64MAX_FILE_DOWNLOAD_MB=128
MAX_REQUEST_BODY_MB最大请求体大小(MB,解压后计;防止zip bomb/OOM)128MAX_REQUEST_BODY_MB=256
STREAM_SCANNER_MAX_BUFFER_MBSSE流扫描缓冲区最大大小(MB)64STREAM_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请求轮询间隔(秒)0POLLING_INTERVAL=5

渠道上游模型同步

环境变量说明默认值示例
CHANNEL_UPSTREAM_MODEL_UPDATE_TASK_ENABLED启用定期同步上游供应商模型列表trueCHANNEL_UPSTREAM_MODEL_UPDATE_TASK_ENABLED=false
CHANNEL_UPSTREAM_MODEL_UPDATE_TASK_INTERVAL_MINUTES模型列表同步间隔(分钟)30CHANNEL_UPSTREAM_MODEL_UPDATE_TASK_INTERVAL_MINUTES=60
CHANNEL_UPSTREAM_MODEL_UPDATE_MIN_CHECK_INTERVAL_SECONDS单渠道最小检查间隔(秒)300CHANNEL_UPSTREAM_MODEL_UPDATE_MIN_CHECK_INTERVAL_SECONDS=600

模型和请求处理配置

环境变量说明默认值示例
FORCE_STREAM_OPTION覆盖客户端stream_options参数,强制获取流式用量信息trueFORCE_STREAM_OPTION=false
CountToken是否启用本地token计数trueCountToken=false
GET_MEDIA_TOKEN流式模式下是否统计图片/音频tokentrueGET_MEDIA_TOKEN=false
GET_MEDIA_TOKEN_NOT_STREAM非流模式下是否统计图片/音频tokenfalseGET_MEDIA_TOKEN_NOT_STREAM=true

异步任务配置

环境变量说明默认值示例
UPDATE_TASK是否启用异步任务轮询更新(MJ、Suno等)trueUPDATE_TASK=false
TASK_QUERY_LIMIT每次轮询查询的最大任务数1000TASK_QUERY_LIMIT=500
TASK_TIMEOUT_MINUTES异步任务超时(分钟),超时后标记失败并退款,0为禁用1440TASK_TIMEOUT_MINUTES=720
TASK_PRICE_PATCH任务价格补丁,设置的模型仅按次计费,模型名用英文逗号隔开-TASK_PRICE_PATCH=sora-2,sora-2-pro

特定模型配置

环境变量说明默认值示例
AZURE_DEFAULT_API_VERSIONAzure渠道默认API版本2025-04-01-previewAZURE_DEFAULT_API_VERSION=2023-05-15
COHERE_SAFETY_SETTINGCohere模型安全设置NONECOHERE_SAFETY_SETTING=CONTEXTUAL
DIFY_DEBUGDify渠道输出工作流和节点信息trueDIFY_DEBUG=false

订阅缓存配置

环境变量说明默认值示例
SUBSCRIPTION_PLAN_CACHE_TTL订阅计划缓存TTL(秒)300SUBSCRIPTION_PLAN_CACHE_TTL=600
SUBSCRIPTION_PLAN_INFO_CACHE_TTL订阅计划详情缓存TTL(秒)120SUBSCRIPTION_PLAN_INFO_CACHE_TTL=300
SUBSCRIPTION_PLAN_CACHE_CAP订阅计划缓存最大容量5000SUBSCRIPTION_PLAN_CACHE_CAP=10000
SUBSCRIPTION_PLAN_INFO_CACHE_CAP订阅计划详情缓存最大容量10000SUBSCRIPTION_PLAN_INFO_CACHE_CAP=20000

其他配置

环境变量说明默认值示例
ERROR_LOG_ENABLED是否记录并在前端显示错误日志falseERROR_LOG_ENABLED=true

分析统计

环境变量说明默认值示例
UMAMI_WEBSITE_IDUmami站点ID-UMAMI_WEBSITE_ID=xxxx-xxxx
UMAMI_SCRIPT_URLUmami脚本地址https://analytics.umami.is/script.jsUMAMI_SCRIPT_URL=https://umami.example.com/script.js
GOOGLE_ANALYTICS_IDGoogle Analytics 4站点ID-GOOGLE_ANALYTICS_ID=G-XXXXXXX

元数据同步

环境变量说明默认值示例
SYNC_UPSTREAM_BASE模型/厂商元数据上游地址https://basellm.github.io/llm-metadataSYNC_UPSTREAM_BASE=https://mirror.example.com/llm-metadata
SYNC_HTTP_TIMEOUT_SECONDS同步HTTP超时(秒)10SYNC_HTTP_TIMEOUT_SECONDS=15
SYNC_HTTP_RETRY同步重试次数3SYNC_HTTP_RETRY=5
SYNC_HTTP_MAX_MB响应体最大大小(MB)10SYNC_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_URLPyroscope服务器地址,留空禁用-PYROSCOPE_URL=http://pyroscope:4040
PYROSCOPE_APP_NAME上报的应用名称new-apiPYROSCOPE_APP_NAME=my-api
PYROSCOPE_BASIC_AUTH_USERPyroscope Basic Auth用户名-PYROSCOPE_BASIC_AUTH_USER=admin
PYROSCOPE_BASIC_AUTH_PASSWORDPyroscope Basic Auth密码-PYROSCOPE_BASIC_AUTH_PASSWORD=secret
HOSTNAME上报的主机名标签new-apiHOSTNAME=node-1
PYROSCOPE_MUTEX_RATE互斥锁分析采样率5PYROSCOPE_MUTEX_RATE=10
PYROSCOPE_BLOCK_RATE阻塞分析采样率5PYROSCOPE_BLOCK_RATE=10

LinuxDo OAuth

正常情况下无需修改。

环境变量说明默认值示例
LINUX_DO_TOKEN_ENDPOINTLinuxDo 令牌端点https://connect.linux.do/oauth2/tokenLINUX_DO_TOKEN_ENDPOINT=https://connect.linux.do/oauth2/token
LINUX_DO_USER_ENDPOINTLinuxDo 用户端点https://connect.linux.do/api/userLINUX_DO_USER_ENDPOINT=https://connect.linux.do/api/user

调试相关

环境变量说明默认值示例
DEBUG启用调试模式(包括GORM调试输出)falseDEBUG=true
GIN_MODEGin运行模式releaseGIN_MODE=debug
ENABLE_PPROF启用pprof性能分析(端口8005)falseENABLE_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-domain.com

# 可选:同步频率
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配置说明文档。

这篇文档对您有帮助吗?

最后更新于