Skip to content

Configuration

李源炳 edited this page Jun 19, 2026 · 1 revision

配置说明

IMBoy 采用三层配置体系,优先级从高到低:

IMBOY_* 环境变量  >  sys.runtime.config  >  sys.config / sys.local.config

环境变量(生产推荐)

所有 IMBOY_* 前缀的环境变量在运行时具有最高优先级。

核心配置

变量 默认值 说明
IMBOYENV prod 运行环境:local / dev / prod
IMBOY_DOMAIN 绑定域名,License 验证使用
HTTP_PORT 8080 HTTP/WebSocket 监听端口
IMBOY_JWT_SECRET JWT 签名密钥(必填,32位以上
IMBOY_JWT_EXPIRE 86400 JWT 过期时间(秒)

数据库

变量 默认值 说明
IMBOY_DB_HOST localhost PostgreSQL 主机
IMBOY_DB_PORT 5432 PostgreSQL 端口
IMBOY_DB_NAME imboy 数据库名
IMBOY_DB_USER imboy 数据库用户
IMBOY_DB_PASS 数据库密码(必填
IMBOY_DB_POOL 10 连接池大小

S3 附件存储(Garage)

变量 默认值 说明
S3_ENDPOINT S3 端点 URL
S3_ACCESS_KEY Access Key
S3_SECRET_KEY Secret Key
S3_BUCKET imboy 默认存储桶
S3_REGION us-east-1 区域(Garage 可任意填写)

推送通知

变量 默认值 说明
FCM_SERVER_KEY Firebase 推送(Android)
APNS_CERT_PATH APNs 证书路径(iOS)
APNS_CERT_PASS APNs 证书密码

支付网关

变量 默认值 说明
WECHAT_PAY_MCHID 微信支付商户号
WECHAT_PAY_APP_ID 微信 AppID
WECHAT_API_V3_KEY API v3 密钥
WECHAT_CERT_PATH 商户证书路径
ALIPAY_APP_ID 支付宝应用 ID
ALIPAY_PRIVATE_KEY 支付宝私钥

License

变量 默认值 说明
IMBOY_LICENSE_FILE License 文件路径
IMBOY_LICENSE_PUBKEY RSA 公钥路径(验签用)

sys.config 关键配置项

本地开发使用 config/sys.local.config,生产使用 config/sys.config

{imboy, [
    %% 运行环境
    {env, prod},

    %% E2EE 加密模式:disabled | optional | required
    {e2ee_mode, optional},

    %% 消息永久归档(开启后消息写入 TimescaleDB)
    {msg_archive_enabled, false},

    %% 最大 WebSocket 连接数(0 = 不限)
    {max_ws_connections, 0},

    %% 离线消息保留天数
    {offline_msg_ttl_days, 30},

    %% 文件上传大小限制(字节)
    {upload_max_size, 104857600},   %% 100 MB

    %% 速率限制(每分钟每用户最大消息数)
    {rate_limit_msg_per_min, 600}
]}

热重载配置

在运行中的节点执行(无需重启):

%% 进入远程控制台
_rel/imboy/bin/imboy remote_console

%% 重新加载配置
config_ds:local_reload().

%% 查看当前 E2EE 模式
application:get_env(imboy, e2ee_mode).

.env.example 完整示例

参见仓库 deploy/.env.example,已包含所有可选项及注释说明。

Clone this wiki locally