Skip to content

环境变量

ForwardX 大多数设置都可以在后台页面中配置。环境变量主要用于容器启动、数据库连接、登录密钥、Telegram Token 和升级命令这类“启动前就要确定”的配置。

Docker 部署时,环境变量通常写在部署目录的 .env 文件中。本地 systemd 部署时,可以写入 systemd 服务的环境配置,或由安装脚本生成的服务配置管理。

修改后要重启

环境变量只会在面板进程启动时读取。修改 .env 或 systemd 环境配置后,需要重启面板容器或 forwardx-panel.service

基础变量

变量默认值说明
PORT9810面板对外访问端口。本地部署时是面板监听端口;Docker Compose 中通常是宿主机端口,容器内仍监听 3000
NODE_ENVproduction运行模式,正式部署保持 production
JWT_SECRET自动生成或示例值登录签名密钥。生产环境建议使用 32 位以上随机字符串,并长期保持不变。
FORWARDX_JWT_SECRET_PATH未配置 JWT_SECRET 时,面板保存自动生成登录密钥的路径。
DATABASE_CONFIG_PATH / DB_CONFIG_PATH/data/database.json面板保存数据库连接配置的位置。
SQLITE_PATH/data/forwardx.dbSQLite 数据文件路径。
FORWARDX_PANEL_TIME_SYNCtrue启动并定期校准旧版 Agent/FXP 加密协议使用的面板时钟;不会修改宿主机或 Docker 的系统时间。
FORWARDX_PANEL_TIME_SOURCES内置多个 HTTPS 来源可选,使用逗号分隔的可信 HTTPS 地址覆盖默认校时来源。
FORWARDX_PANEL_TIME_ALLOW_SINGLE_SOURCEfalse是否允许仅一个 HTTPS 来源可用时校准;单源无法交叉验证,仅建议在可信内网时间服务场景开启。

JWT_SECRET 为什么重要

JWT_SECRET 变化后,已登录用户会需要重新登录。建议 Docker 首次部署时就在 .env 中固定一个随机值,后续升级不要更换。

管理员密码不由环境变量设置

管理员邮箱和密码在首次初始化向导中创建。ADMIN_PASSWORD 不是有效配置,也不会在容器重启或重装时重置管理员密码;需要保留数据时使用原管理员凭据,需要全新初始化时必须确认旧 Docker 数据卷已删除。

Docker 与时间校准

Docker 容器与宿主机共享系统时钟,不能独立运行一套时间。ForwardX 会使用多个 HTTPS 来源校准旧版 Agent/FXP 加密协议的时间基准;新版 Agent 与 ForwardX FXP 面板上报使用一次性挑战认证,不再依赖双方系统时间。宿主机仍建议开启 NTP。外网受限时,可通过 FORWARDX_PANEL_TIME_SOURCES 指向部署方可信且会返回标准 Date 响应头的 HTTPS 服务。

官方 Docker 部署默认只有一个面板进程。自行横向扩容面板时,请保持单副本或为 /api/agent/*/api/sync/api/stream 配置粘性路由,确保一次性挑战由同一面板进程签发和消费。

数据库变量

首次进入面板可以在初始化向导中选择数据库。你也可以用环境变量提前指定数据库连接。

变量默认值说明
DATABASE_TYPE / DB_TYPE可选,强制指定 sqlitemysqlpostgresql。设置后后台切换数据库不会在重启后生效,除非移除该变量。
MYSQL_URLMySQL 连接串。配置后优先于分项配置。
MYSQL_HOSTMySQL 地址。Docker 内不要把宿主机数据库写成 127.0.0.1
MYSQL_PORT3306MySQL 端口。
MYSQL_USERMySQL 用户名。
MYSQL_PASSWORDMySQL 密码。
MYSQL_DATABASEMySQL 数据库名。
MYSQL_SSLfalseMySQL 是否启用 SSL。
MYSQL_CONFIG_PATH/data/mysql.json兼容旧版本的 MySQL 配置文件路径。
POSTGRES_URL / POSTGRESQL_URL / PG_URLPostgreSQL 连接串。配置后优先于分项配置。
POSTGRES_HOST / POSTGRESQL_HOST / PGHOSTPostgreSQL 地址。
POSTGRES_PORT / POSTGRESQL_PORT / PGPORT5432PostgreSQL 端口。
POSTGRES_USER / POSTGRESQL_USER / PGUSERPostgreSQL 用户名。
POSTGRES_PASSWORD / POSTGRESQL_PASSWORD / PGPASSWORDPostgreSQL 密码。
POSTGRES_DATABASE / POSTGRESQL_DATABASE / PGDATABASEPostgreSQL 数据库名。
POSTGRES_SSL / POSTGRESQL_SSL / PGSSLfalsePostgreSQL 是否启用 SSL。

Docker 场景下数据库地址可以按下面判断:

场景推荐填写
数据库和面板在同一个 Compose 项目数据库服务名,例如 postgresmysql
数据库在宿主机host.docker.internal 或宿主机内网 IP
数据库在另一台服务器面板容器能访问到的内网 IP、公网 IP 或域名

数据库连接池

MySQL 和 PostgreSQL 连接池由面板自动管理,不需要配置连接数。面板会按主机数量在 16/24/32 的最大连接档位间自动调整。连接按实际并发按需创建,并保留已经建立的池内连接供下一轮心跳复用,避免并发突发后反复建连产生大量 TIME-WAIT;MySQL 使用有限等待队列,PostgreSQL 的连接与排队等待最多为 6 秒。

Telegram 和通知

变量默认值说明
TELEGRAM_BOT_TOKENTelegram Bot Token。也可以在后台“系统设置 -> Telegram”中填写。
TELEGRAM_BOT_POLLINGtrue是否启用 Telegram 长轮询。一般保持默认,不需要配置 webhook。

如果通过环境变量配置 TELEGRAM_BOT_TOKEN,后台会显示 Token 来源为环境变量,普通页面中不能直接删除该 Token。需要停用时请移除环境变量并重启面板。

AI 助手配置

AI 助手目前建议在后台页面配置:

text
系统设置 -> Telegram -> AI 助手模型

可配置内容包括:

  • 供应商:DeepSeek、SiliconFlow 或自定义 OpenAI 兼容接口。
  • API Key。
  • Base URL。
  • 模型名称。
  • 最大输出 Tokens。
  • 温度。
  • 普通用户是否可用 AI 管理。
  • AI 相关机器人消息是否自动撤回。

TIP

AI API Key 不建议写入 Docker .env。后台保存后会做脱敏展示,也方便管理员切换供应商和模型。

升级和镜像

变量默认值说明
FORWARDX_IMAGEghcr.io/poouo/forwardx:latestDocker 部署使用的镜像。
FORWARDX_IMAGE_REPOghcr.io/poouo/forwardxDocker 一键脚本解析版本镜像时使用的镜像仓库。
FORWARDX_TARGET_VERSION本地部署可指定安装或升级到某个版本,例如 v2.3.222。Docker 脚本也会用它校验目标镜像是否已经构建完成。
FORWARDX_UPGRADE_COMMAND后台一键升级命令。为空时只能检查更新,不能在后台直接执行升级。
FORWARDX_REPO_URL自动注入升级任务执行时使用的仓库地址,通常不需要手动配置。
FORWARDX_CURRENT_VERSION自动注入升级任务执行时的当前版本,通常不需要手动配置。

Agent 安装脚本相关变量

这些变量主要在执行 Agent 安装或升级脚本时使用:

变量默认值说明
FORWARDX_AGENT_RELEASE_VERSION面板版本对应的 Agent 版本指定 Agent 安装脚本下载的 Agent Release 版本。
FORWARDX_AGENT_PANEL_FIRST面板设置决定优先从面板内置资产下载 Agent 运行时,失败再回退到 GitHub。
FORWARDX_CURL_CONNECT_TIMEOUT15下载连接超时时间。
FORWARDX_CURL_LOW_SPEED_LIMIT1024下载低速判断阈值。
FORWARDX_CURL_ASSET_LOW_SPEED_TIME180下载资产允许低速持续的时间。

普通用户通常不需要配置这些变量。只有在 GitHub 访问不稳定、内网镜像分发或排查 Agent 升级问题时才会用到。

调试日志变量

变量默认值说明
FORWARDX_VERBOSE_AGENT_EVENTS开启更详细的 Agent 事件日志。
FORWARDX_VERBOSE_AGENT_ACTIONS开启更详细的 Agent 动作下发日志。
FORWARDX_VERBOSE_AGENT_REPORTS开启更详细的 Agent 上报日志。
FORWARDX_LOG_DIR默认日志目录指定面板日志文件目录。

这些变量会增加日志量。排查完成后建议关闭,避免长期刷大量无效日志。