- docker-compose.yml:tenant-service 挂载 /var/run/docker.sock 和部署根目录 - deploy.sh:写入 PRIVATE_DEPLOY_ROOT 到 .env - update.sh:旧版升级时自动补齐 PRIVATE_DEPLOY_ROOT - .env.example:新增 PRIVATE_DEPLOY_ROOT 注释说明 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
150 行
5.8 KiB
Plaintext
150 行
5.8 KiB
Plaintext
# =============================================================================
|
||
# XuqmGroup 私有化部署 — 主入口配置
|
||
#
|
||
# 使用方法:
|
||
# cp .env.example .env
|
||
# 按注释填写各项,然后执行 ./scripts/deploy-szyx.sh 或 ./scripts/install.sh
|
||
#
|
||
# 说明:
|
||
# - 所有密码/密钥请写入 config/secrets.env(不要写在本文件)
|
||
# - 域名留空或填 IP 时,服务通过 http://<IP> 访问,适合局域网/内网场景
|
||
# - COMPOSE_PROFILES 与 ENABLE_* 保持一致
|
||
# =============================================================================
|
||
|
||
# 当前部署版本号,格式:YYYY.MM.DD-private.N
|
||
# 用于镜像标签匹配和审计追溯
|
||
PRIVATE_VERSION=2026.05.21-private.2
|
||
# 安装目录的绝对路径(deploy.sh 自动写入,用于容器内一键更新功能)
|
||
PRIVATE_DEPLOY_ROOT=/opt/xuqm-private
|
||
|
||
# =============================================================================
|
||
# 镜像仓库
|
||
# =============================================================================
|
||
|
||
# 私有 Docker 镜像仓库(不含协议前缀),例如:
|
||
# crpi-xxxx.cn-beijing.personal.cr.aliyuncs.com/xuqmgroup
|
||
REGISTRY=registry.example.com/xuqm
|
||
|
||
# 仓库登录用户名(install.sh 会自动读取并执行 docker login)
|
||
REGISTRY_USER=
|
||
|
||
# 镜像版本标签,与业务发布版本一一对应
|
||
# 开发/体验环境可用 latest;生产环境请固定版本号
|
||
IMAGE_TAG=latest
|
||
|
||
# =============================================================================
|
||
# 服务 Profile — 选择要启动哪些容器
|
||
# =============================================================================
|
||
#
|
||
# 可选值(用逗号分隔):
|
||
# base 必选,包含:tenant-service / file-service / tenant-web /
|
||
# ops-web / docs-site / nginx
|
||
# infra-mysql 托管 MySQL 容器(MYSQL_MODE=managed 时必选)
|
||
# infra-redis 托管 Redis 容器(REDIS_MODE=managed 时必选)
|
||
# im IM HTTP 和 WebSocket 服务
|
||
# push 厂商推送通知服务
|
||
# update 版本管理、RN 热更新、应用市场自动发布
|
||
# license License 校验服务
|
||
#
|
||
# 完整部署示例(MySQL/Redis 托管):
|
||
# COMPOSE_PROFILES=base,infra-mysql,infra-redis,im,push,update,license
|
||
# 生产示例(外部 MySQL/Redis):
|
||
# COMPOSE_PROFILES=base,im,push,update,license
|
||
#
|
||
COMPOSE_PROFILES=base,infra-mysql,infra-redis,im,push,update,license
|
||
|
||
# =============================================================================
|
||
# 功能开关(与 COMPOSE_PROFILES 保持对应)
|
||
# =============================================================================
|
||
# 这些开关控制 tenant-service 向 SDK 返回的能力列表
|
||
# 未部署的服务设为 false,SDK 会禁用相关功能并不发起对应请求
|
||
ENABLE_FILE=true
|
||
ENABLE_IM=true
|
||
ENABLE_PUSH=true
|
||
ENABLE_UPDATE=true
|
||
ENABLE_LICENSE=true
|
||
|
||
# =============================================================================
|
||
# MySQL 配置
|
||
# =============================================================================
|
||
#
|
||
# MYSQL_MODE 可选值:
|
||
# external 客户自备 MySQL,脚本仅校验连通性,不启动容器
|
||
# managed 脚本通过 Docker Compose 启动 MySQL 8.4 容器
|
||
#
|
||
# 生产环境推荐使用 external 模式,由 DBA 管理数据库
|
||
# 体验/开发环境可使用 managed 模式快速启动
|
||
#
|
||
MYSQL_MODE=managed
|
||
|
||
# 数据库主机(managed 模式填写 Docker 服务名 "mysql";external 填真实 IP/域名)
|
||
MYSQL_HOST=mysql
|
||
MYSQL_PORT=3306
|
||
|
||
# 数据库名,首次部署自动创建(managed 模式)
|
||
MYSQL_DATABASE=xuqm_private
|
||
|
||
# 数据库用户名(managed 模式自动创建此账号)
|
||
MYSQL_USERNAME=xuqm
|
||
|
||
# 密码请填写在 config/secrets.env 中的 MYSQL_PASSWORD / MYSQL_ROOT_PASSWORD
|
||
# 托管模式下若为空或 change-me,install.sh 会自动生成随机密码
|
||
|
||
# 数据目录(managed 模式,挂载到宿主机,重启后数据保留)
|
||
MYSQL_DATA_DIR=./data/mysql
|
||
|
||
# =============================================================================
|
||
# Redis 配置
|
||
# =============================================================================
|
||
#
|
||
# REDIS_MODE 可选值:
|
||
# external 客户自备 Redis
|
||
# managed 脚本通过 Docker Compose 启动 Redis 7 容器
|
||
#
|
||
REDIS_MODE=managed
|
||
REDIS_HOST=redis
|
||
REDIS_PORT=6379
|
||
REDIS_DATABASE=0
|
||
REDIS_DATA_DIR=./data/redis
|
||
|
||
# =============================================================================
|
||
# 域名 / 访问地址配置
|
||
# =============================================================================
|
||
#
|
||
# 如果没有域名,直接填写部署机器 IP(含协议),例如:
|
||
# CONSOLE_DOMAIN=http://192.168.1.100
|
||
# OPS_DOMAIN=http://192.168.1.100
|
||
#
|
||
# 如果使用域名,填写完整 URL,例如:
|
||
# CONSOLE_DOMAIN=https://console.company.com
|
||
#
|
||
# 注意:所有 URL 不要以斜杠结尾
|
||
#
|
||
# 控制台(租户登录界面)
|
||
CONSOLE_DOMAIN=http://192.168.1.100
|
||
# 运营后台(管理员界面)
|
||
OPS_DOMAIN=http://192.168.1.100
|
||
# 文档站
|
||
DOCS_DOMAIN=http://192.168.1.100/docs
|
||
# 文件服务(上传/下载)
|
||
FILE_DOMAIN=http://192.168.1.100
|
||
# IM 服务(未部署时留空)
|
||
IM_DOMAIN=http://192.168.1.100
|
||
# 版本管理服务(未部署时留空)
|
||
UPDATE_DOMAIN=http://192.168.1.100
|
||
# License 服务(未部署时留空)
|
||
LICENSE_DOMAIN=http://192.168.1.100
|
||
# 推送服务(未部署时留空)
|
||
PUSH_DOMAIN=http://192.168.1.100
|
||
|
||
# =============================================================================
|
||
# Bootstrap 初始租户(仅首次部署生效,幂等)
|
||
# =============================================================================
|
||
#
|
||
# 私有化部署为单租户模式,首次启动时自动创建此租户和默认 App。
|
||
# 如果通过 migrate-tenant.sh 迁移现有租户,原 bootstrap 租户数据会被替换。
|
||
#
|
||
TENANT_BOOTSTRAP_EMAIL=admin@company.com
|
||
# 密码请填写在 config/secrets.env 中的 TENANT_BOOTSTRAP_PASSWORD
|
||
TENANT_BOOTSTRAP_APP_KEY=ak_private_default
|