部署与运维
部署认证配置
通过静态环境变量配置 Google、GitHub、微信、邮箱登录、SMTP 和 SMS。
Google、GitHub、微信、邮箱登录、SMTP 与 SMS 属于整个 AskTable 实例,只从环境变量读取。修改后需要重启 Web 和 Worker;系统设置中不再提供这些认证配置。
部署模式与 Region
AT_REGION 默认是 cn,也可设置为 global。私有部署(AT_DEPLOY_MODE=local)始终使用邮箱作为账号标识,不因 Region 改变。国内 Cloud 使用手机号,海外 Cloud 使用邮箱。部署后应固定 Region;变更需要先规划身份数据迁移。
使用 Docker Compose 时,将下方配置合并到原有 asktable.environment 中。修改环境变量后执行 docker compose up -d asktable,让容器按新配置重建;单纯重启容器不会读取修改后的 Compose 环境变量。Web、Worker 分开运行时,两者都要更新并重启。
OAuth 提供商
| 提供商 | 环境变量 |
|---|---|
GOOGLE_CLIENT_ID、GOOGLE_CLIENT_SECRET | |
| GitHub | GITHUB_CLIENT_ID、GITHUB_CLIENT_SECRET |
| 微信 | WECHAT_APP_ID、WECHAT_APP_SECRET |
每组 ID 和 Secret 必须同时设置。整组留空会禁用该提供商,只填一项会让应用在启动时失败并指出不完整配置。
services:
asktable:
environment:
GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID:-}
GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET:-}
GITHUB_CLIENT_ID: ${GITHUB_CLIENT_ID:-}
GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET:-}
WECHAT_APP_ID: ${WECHAT_APP_ID:-}
WECHAT_APP_SECRET: ${WECHAT_APP_SECRET:-}
SMS_API_URL: ${SMS_API_URL:-}
SMS_API_KEY: ${SMS_API_KEY:-}GET /system/info 只返回启用状态和非敏感 Client ID,不返回 Secret,也不包含任何组织级企业微信/WPS/飞书/钉钉配置。
国内云
Cloud + CN 生产的统一登录页只提供微信;组织专属的企业微信/WPS/飞书/钉钉登录地址仍可使用。微信、企业微信、WPS、飞书或钉钉认证成功后先建立正常会话;缺少手机号时,统一 setup 页面会要求完成验证后才能进入产品工作区。启动时必须同时配置 WECHAT_APP_ID、WECHAT_APP_SECRET、SMS_API_URL 和 SMS_API_KEY;任一缺失都会让进程明确报错并停止。
邮箱登录与 SMTP
services:
asktable:
environment:
EMAIL_LOGIN_ENABLED: "true"
EMAIL_SMTP_PROVIDER: aliyun # aliyun | custom
EMAIL_SMTP_HOST: "" # custom 时必填
EMAIL_SMTP_PORT: "465"
EMAIL_SMTP_USERNAME: ""
EMAIL_SMTP_PASSWORD: ${EMAIL_SMTP_PASSWORD:-}
EMAIL_SMTP_USE_SSL: "true"
EMAIL_SENDER_ADDRESS: noreply@example.comaliyun 使用固定的阿里云邮件推送主机和 SSL 端口,发件地址同时作为用户名;custom 使用给定的 Host、Port 与 SSL 选项,Username 留空时回退到发件地址。SMTP 未完整配置时,依赖邮件发送的任务会跳过邮件投递。
私有部署和海外 Cloud 中,若 Google、GitHub、微信全部未启用,即使 EMAIL_LOGIN_ENABLED=false,系统也会保留邮箱登录兜底,避免部署完全没有登录入口。组织级企业微信/WPS/飞书/钉钉不参与这个判断。
企业微信、WPS、飞书和钉钉请由组织 Owner/Admin 在登录集成中连接,参见 企业集成登录。旧版本升级要求见 迁移。