所有配置均通过部署目录根目录的 .env 文件中的环境变量完成。Docker Compose 会自动读取此文件——无需 --env-file 标志。

标记为必填的变量必须在启动容器前设置。其他变量均有默认值,为可选项。


项目

这些变量定义您的 rtCloud 实例的身份和访问点。

变量默认值必填描述
PROJECT_ID此部署的唯一标识符。不含空格或特殊字符。用作内部命名前缀。
PROJECT_URL用户访问应用的域名或 IP 地址(例如 rtcloud.example.com192.168.1.100)。
PROJECT_TYPErtsurvey要激活的平台变体。选项:rtworkrtsurveyrthome
PROJECT_PORT80容器内应用监听的端口。除非您清楚自己在做什么,否则不要更改。
HTTP_PROTOCOLhttps用于构建内部 URL 的协议。如果不使用 SSL,请设置为 http

数据库

MySQL 连接凭据。数据库由 MySQL 容器自动管理——您只需设置强密码。

变量默认值必填描述
MYSQL_DATABASEsmartsurvey应用数据库名称。
MYSQL_USERsmartsurvey应用使用的 MySQL 用户。
MYSQL_PASSWORDMYSQL_USER 的密码。请使用强唯一值。
MYSQL_ROOT_PASSWORDMySQL root 密码。数据库初始化和管理操作所需。
MYSQL_HOSTmysqlMySQL 主机名。除非连接到外部数据库,否则使用默认值。
MYSQL_PORT3306MySQL 端口。

管理员账户

管理员账户在全新数据库的首次启动时自动创建。

变量默认值必填描述
ADMIN_PASSWORDadmin内置 admin 用户的密码。在首次启动前设置。如果数据库已存在,则无效。

首次登录后,请从网页界面的账户设置页面更改管理员密码。


端口

控制应用绑定到哪些主机端口。

变量默认值描述
APP_PORT8080主网页界面的主机端口。如果服务器上的端口 8080 已被占用,请更改此项。
SHINY_PORT3838Shiny 分析服务器的主机端口。

运行时

变量默认值描述
RUN_ENVprod运行时环境。生产部署使用 prod,本地开发使用 dev
RUN_MODEadmin容器角色。admin 运行完整堆栈(网页 + 队列 + cron)。worker 仅运行后台处理(用于水平扩展)。
TZAsia/Ho_Chi_Minh服务器时区。影响日志时间戳、cron 计划和日期显示。使用 TZ 数据库名称(例如 UTCAmerica/New_YorkEurope/London)。
LOG_LEVELinfo应用日志详细程度。选项:debuginfowarningerror
COMPOSE_PROJECT_NAMErtcloud应用于所有 Docker 容器和卷名称的前缀。在同一主机上运行多个 rtCloud 实例时请更改此项。
RESTART_POLICYunless-stoppedDocker 容器重启行为。选项:noalwayson-failureunless-stopped
RTCLOUD_IMAGErtawebteam/rta-smartsurvey:survey-dockerize要使用的 Docker 镜像。更改标签以固定特定版本。
REQUIRE_LICENSEfalse在启动时启用许可证密钥验证。如需许可证信息,请联系 RTA。

安全性

变量默认值描述
CSRF_VALIDATION_ENABLEDtrue启用 CSRF 令牌验证。在生产环境中保持 true。仅在本地开发中遇到 400 CSRF token could not be verified 错误时设置为 false
GII_ENABLEDfalse启用 Yii 框架代码生成工具。切勿在生产环境中启用。

SSO — 内嵌 Keycloak

启用与 rtCloud 捆绑的 Keycloak 容器,实现全功能企业 SSO。需要具有 HTTPS 的域名。

变量默认值描述
EMBED_KEYCLOAKfalse设置为 true 以启动内嵌 Keycloak 容器。激活 embed-keycloak Docker Compose 配置文件。
KEYCLOAK_URLKeycloak 服务器的完整 URL(例如 https://rtcloud.example.com/auth)。
KEYCLOAK_REALMKeycloak realm 名称(例如 rtsurvey)。
KEYCLOAK_CLIENT_IDrtCloud 应用的 Keycloak 客户端 ID。
KEYCLOAK_CLIENT_SECRETKeycloak 客户端密钥。从 Keycloak 管理控制台生成。
KEYCLOAK_ADMIN_USERadminKeycloak 管理员用户名。
KEYCLOAK_ADMIN_PASSWORDKeycloak 管理员密码。
KEYCLOAK_DBkeycloakKeycloak 的数据库名称。首次启动时自动创建。
KEYCLOAK_DB_USERkeycloakKeycloak 的数据库用户。
KEYCLOAK_DB_PASSWORDKeycloak 用户的数据库密码。
KC_HOSTNAMEKeycloak 前端 URL(例如 https://rtcloud.example.com/auth)。
KC_HOSTNAME_STRICTfalse强制严格主机名匹配。在生产环境中使用固定域名时设置为 true

请参阅 SSO 认证 了解完整设置指南。


SSO — 外部 OIDC 提供商

连接到现有的 OIDC 兼容身份提供商(Supabase、Auth0、Authentik、Okta 等)。

变量默认值描述
OIDC_ISSUER_URLOIDC 发行方发现 URL(例如 https://accounts.google.com)。
OIDC_CLIENT_ID在您的身份提供商中注册的客户端 ID。
OIDC_CLIENT_SECRET来自您的身份提供商的客户端密钥。
OIDC_SCOPEopenid profile email要请求的 OIDC 范围的空格分隔列表。
OIDC_REDIRECT_URI网页应用的回调 URL(例如 https://rtcloud.example.com/auth/callback)。
OIDC_MOBILE_CLIENT_IDrtSurvey 移动应用的独立客户端 ID。
OIDC_MOBILE_REDIRECT_URI移动应用回调 URI(例如 vn.rta.rtsurvey.auth://callback)。
OPEN_REGISTRATIONfalse自动为首次通过 OIDC 验证的用户创建 rtCloud 账户。
OIDC_AUTHORIZATION_ENDPOINT覆盖授权端点 URL(留空以使用发现)。
OIDC_TOKEN_ENDPOINT覆盖令牌端点 URL(留空以使用发现)。
OIDC_USERINFO_ENDPOINT覆盖用户信息端点 URL(留空以使用发现)。

SSO — Azure Active Directory

变量描述
AZURE_CLIENT_IDAzure AD 应用程序(客户端)ID。
AZURE_TENANT_IDAzure AD 目录(租户)ID。

可选集成

Stata

变量默认值描述
STATA_ENABLEDfalse启用 Stata 统计软件集成以进行数据分析。
STATA_BIN_PATH/usr/bin/stata容器内 Stata 二进制文件的绝对路径。

Elasticsearch

变量描述
ES_HOSTElasticsearch 主机(例如 http://elasticsearch:9200)。
ES_PORTElasticsearch 端口。

Matomo 分析

变量描述
PIWIK_URLMatomo(Piwik)服务器 URL。
PIWIK_IDMatomo 站点 ID。
PIWIK_SECRETMatomo 认证令牌。

OpenCPU(R 计算)

变量描述
OCPU_HOST用于基于 R 的统计计算的 OpenCPU 服务器 URL。

RtBox 集成

变量描述
RTBOX_HOSTRtBox 服务主机 URL。
RTBOX_USER_APIRtBox 用户 API 密钥。
RTBOX_BASIC_AUTHRtBox 的基本认证凭据。

Matrix 消息

变量描述
MATRIX_HOMESERVER_HOSTMatrix 主服务器主机。
MATRIX_HOMESERVER_PORTMatrix 主服务器端口。

数据卷

所有应用数据存储在命名的 Docker 卷中。卷在首次启动时自动创建,并在容器重启和更新后持久保存。

挂载点内容
rtcloud_mysql_data/var/lib/mysqlMySQL 数据库文件
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/smartsurveyShiny 服务器 R 脚本
rtcloud_shiny_logs/var/log/shiny-serverShiny 服务器日志
rtcloud_assets…/assets网页资产(CSS、JS)
rtcloud_runtime…/protected/runtime应用运行时缓存
rtcloud_cache…/cache应用缓存
rtcloud_tmp…/tmp临时文件

卷名称以 COMPOSE_PROJECT_NAME 的值为前缀(默认:rtcloud)。

列出部署的所有卷:

  docker volume ls | grep rtcloud
  
此页面有帮助吗?