On this page
settings
配置参考
自托管 rtCloud 部署所有环境变量的完整参考。
所有配置均通过部署目录根目录的 .env 文件中的环境变量完成。Docker Compose 会自动读取此文件——无需 --env-file 标志。
标记为必填的变量必须在启动容器前设置。其他变量均有默认值,为可选项。
项目
这些变量定义您的 rtCloud 实例的身份和访问点。
| 变量 | 默认值 | 必填 | 描述 |
|---|---|---|---|
PROJECT_ID | — | 是 | 此部署的唯一标识符。不含空格或特殊字符。用作内部命名前缀。 |
PROJECT_URL | — | 是 | 用户访问应用的域名或 IP 地址(例如 rtcloud.example.com 或 192.168.1.100)。 |
PROJECT_TYPE | rtsurvey | 否 | 要激活的平台变体。选项:rtwork、rtsurvey、rthome。 |
PROJECT_PORT | 80 | 否 | 容器内应用监听的端口。除非您清楚自己在做什么,否则不要更改。 |
HTTP_PROTOCOL | https | 否 | 用于构建内部 URL 的协议。如果不使用 SSL,请设置为 http。 |
数据库
MySQL 连接凭据。数据库由 MySQL 容器自动管理——您只需设置强密码。
| 变量 | 默认值 | 必填 | 描述 |
|---|---|---|---|
MYSQL_DATABASE | smartsurvey | 否 | 应用数据库名称。 |
MYSQL_USER | smartsurvey | 否 | 应用使用的 MySQL 用户。 |
MYSQL_PASSWORD | — | 是 | MYSQL_USER 的密码。请使用强唯一值。 |
MYSQL_ROOT_PASSWORD | — | 是 | MySQL root 密码。数据库初始化和管理操作所需。 |
MYSQL_HOST | mysql | 否 | MySQL 主机名。除非连接到外部数据库,否则使用默认值。 |
MYSQL_PORT | 3306 | 否 | MySQL 端口。 |
管理员账户
管理员账户在全新数据库的首次启动时自动创建。
| 变量 | 默认值 | 必填 | 描述 |
|---|---|---|---|
ADMIN_PASSWORD | admin | 是 | 内置 admin 用户的密码。在首次启动前设置。如果数据库已存在,则无效。 |
首次登录后,请从网页界面的账户设置页面更改管理员密码。
端口
控制应用绑定到哪些主机端口。
| 变量 | 默认值 | 描述 |
|---|---|---|
APP_PORT | 8080 | 主网页界面的主机端口。如果服务器上的端口 8080 已被占用,请更改此项。 |
SHINY_PORT | 3838 | Shiny 分析服务器的主机端口。 |
运行时
| 变量 | 默认值 | 描述 |
|---|---|---|
RUN_ENV | prod | 运行时环境。生产部署使用 prod,本地开发使用 dev。 |
RUN_MODE | admin | 容器角色。admin 运行完整堆栈(网页 + 队列 + cron)。worker 仅运行后台处理(用于水平扩展)。 |
TZ | Asia/Ho_Chi_Minh | 服务器时区。影响日志时间戳、cron 计划和日期显示。使用 TZ 数据库名称(例如 UTC、America/New_York、Europe/London)。 |
LOG_LEVEL | info | 应用日志详细程度。选项:debug、info、warning、error。 |
COMPOSE_PROJECT_NAME | rtcloud | 应用于所有 Docker 容器和卷名称的前缀。在同一主机上运行多个 rtCloud 实例时请更改此项。 |
RESTART_POLICY | unless-stopped | Docker 容器重启行为。选项:no、always、on-failure、unless-stopped。 |
RTCLOUD_IMAGE | rtawebteam/rta-smartsurvey:survey-dockerize | 要使用的 Docker 镜像。更改标签以固定特定版本。 |
REQUIRE_LICENSE | false | 在启动时启用许可证密钥验证。如需许可证信息,请联系 RTA。 |
安全性
| 变量 | 默认值 | 描述 |
|---|---|---|
CSRF_VALIDATION_ENABLED | true | 启用 CSRF 令牌验证。在生产环境中保持 true。仅在本地开发中遇到 400 CSRF token could not be verified 错误时设置为 false。 |
GII_ENABLED | false | 启用 Yii 框架代码生成工具。切勿在生产环境中启用。 |
SSO — 内嵌 Keycloak
启用与 rtCloud 捆绑的 Keycloak 容器,实现全功能企业 SSO。需要具有 HTTPS 的域名。
| 变量 | 默认值 | 描述 |
|---|---|---|
EMBED_KEYCLOAK | false | 设置为 true 以启动内嵌 Keycloak 容器。激活 embed-keycloak Docker Compose 配置文件。 |
KEYCLOAK_URL | — | Keycloak 服务器的完整 URL(例如 https://rtcloud.example.com/auth)。 |
KEYCLOAK_REALM | — | Keycloak realm 名称(例如 rtsurvey)。 |
KEYCLOAK_CLIENT_ID | — | rtCloud 应用的 Keycloak 客户端 ID。 |
KEYCLOAK_CLIENT_SECRET | — | Keycloak 客户端密钥。从 Keycloak 管理控制台生成。 |
KEYCLOAK_ADMIN_USER | admin | Keycloak 管理员用户名。 |
KEYCLOAK_ADMIN_PASSWORD | — | Keycloak 管理员密码。 |
KEYCLOAK_DB | keycloak | Keycloak 的数据库名称。首次启动时自动创建。 |
KEYCLOAK_DB_USER | keycloak | Keycloak 的数据库用户。 |
KEYCLOAK_DB_PASSWORD | — | Keycloak 用户的数据库密码。 |
KC_HOSTNAME | — | Keycloak 前端 URL(例如 https://rtcloud.example.com/auth)。 |
KC_HOSTNAME_STRICT | false | 强制严格主机名匹配。在生产环境中使用固定域名时设置为 true。 |
请参阅 SSO 认证 了解完整设置指南。
SSO — 外部 OIDC 提供商
连接到现有的 OIDC 兼容身份提供商(Supabase、Auth0、Authentik、Okta 等)。
| 变量 | 默认值 | 描述 |
|---|---|---|
OIDC_ISSUER_URL | — | OIDC 发行方发现 URL(例如 https://accounts.google.com)。 |
OIDC_CLIENT_ID | — | 在您的身份提供商中注册的客户端 ID。 |
OIDC_CLIENT_SECRET | — | 来自您的身份提供商的客户端密钥。 |
OIDC_SCOPE | openid profile email | 要请求的 OIDC 范围的空格分隔列表。 |
OIDC_REDIRECT_URI | — | 网页应用的回调 URL(例如 https://rtcloud.example.com/auth/callback)。 |
OIDC_MOBILE_CLIENT_ID | — | rtSurvey 移动应用的独立客户端 ID。 |
OIDC_MOBILE_REDIRECT_URI | — | 移动应用回调 URI(例如 vn.rta.rtsurvey.auth://callback)。 |
OPEN_REGISTRATION | false | 自动为首次通过 OIDC 验证的用户创建 rtCloud 账户。 |
OIDC_AUTHORIZATION_ENDPOINT | — | 覆盖授权端点 URL(留空以使用发现)。 |
OIDC_TOKEN_ENDPOINT | — | 覆盖令牌端点 URL(留空以使用发现)。 |
OIDC_USERINFO_ENDPOINT | — | 覆盖用户信息端点 URL(留空以使用发现)。 |
SSO — Azure Active Directory
| 变量 | 描述 |
|---|---|
AZURE_CLIENT_ID | Azure AD 应用程序(客户端)ID。 |
AZURE_TENANT_ID | Azure AD 目录(租户)ID。 |
可选集成
Stata
| 变量 | 默认值 | 描述 |
|---|---|---|
STATA_ENABLED | false | 启用 Stata 统计软件集成以进行数据分析。 |
STATA_BIN_PATH | /usr/bin/stata | 容器内 Stata 二进制文件的绝对路径。 |
Elasticsearch
| 变量 | 描述 |
|---|---|
ES_HOST | Elasticsearch 主机(例如 http://elasticsearch:9200)。 |
ES_PORT | Elasticsearch 端口。 |
Matomo 分析
| 变量 | 描述 |
|---|---|
PIWIK_URL | Matomo(Piwik)服务器 URL。 |
PIWIK_ID | Matomo 站点 ID。 |
PIWIK_SECRET | Matomo 认证令牌。 |
OpenCPU(R 计算)
| 变量 | 描述 |
|---|---|
OCPU_HOST | 用于基于 R 的统计计算的 OpenCPU 服务器 URL。 |
RtBox 集成
| 变量 | 描述 |
|---|---|
RTBOX_HOST | RtBox 服务主机 URL。 |
RTBOX_USER_API | RtBox 用户 API 密钥。 |
RTBOX_BASIC_AUTH | RtBox 的基本认证凭据。 |
Matrix 消息
| 变量 | 描述 |
|---|---|
MATRIX_HOMESERVER_HOST | Matrix 主服务器主机。 |
MATRIX_HOMESERVER_PORT | Matrix 主服务器端口。 |
数据卷
所有应用数据存储在命名的 Docker 卷中。卷在首次启动时自动创建,并在容器重启和更新后持久保存。
| 卷 | 挂载点 | 内容 |
|---|---|---|
rtcloud_mysql_data | /var/lib/mysql | MySQL 数据库文件 |
rtcloud_uploads | …/uploads | 调查受访者上传的文件 |
rtcloud_audios | …/audios | 音频录音 |
rtcloud_downloads | …/downloads | 生成的导出文件 |
rtcloud_gallery | …/gallery | 图库图片 |
rtcloud_voicemail | …/voicemail | 语音邮件录音 |
rtcloud_analytics | …/analytics | 分析数据 |
rtcloud_aggregate | …/aggregate | 汇总调查结果 |
rtcloud_converter | …/converter | 数据转换输出 |
rtcloud_shiny_data | /srv/shiny-server/smartsurvey | Shiny 服务器 R 脚本 |
rtcloud_shiny_logs | /var/log/shiny-server | Shiny 服务器日志 |
rtcloud_assets | …/assets | 网页资产(CSS、JS) |
rtcloud_runtime | …/protected/runtime | 应用运行时缓存 |
rtcloud_cache | …/cache | 应用缓存 |
rtcloud_tmp | …/tmp | 临时文件 |
卷名称以 COMPOSE_PROJECT_NAME 的值为前缀(默认:rtcloud)。
列出部署的所有卷:
docker volume ls | grep rtcloud
此页面有帮助吗?