chore(config): 删除私有部署配置文件
- 移除 .deploy-state/current.json 部署状态文件 - 移除 .deploy-state/last-healthcheck.json 健康检查记录文件 - 移除 .deploy-state/progress.md 部署进度文档 - 移除 config/docs/docs-runtime.json 文档运行时配置文件 - 移除 config/sdk/xuqm-private-sdk.json SDK配置文件
这个提交包含在:
父节点
964188ba8c
当前提交
f2f9f06bf7
@ -1 +0,0 @@
|
||||
{}
|
||||
@ -1 +0,0 @@
|
||||
{"healthy":false}
|
||||
@ -1 +0,0 @@
|
||||
# 部署进度
|
||||
@ -1,20 +0,0 @@
|
||||
{
|
||||
"deployment": "PRIVATE",
|
||||
"privateVersion": "2026.05.18-private.1",
|
||||
"domains": {
|
||||
"console": "https://console.customer.com",
|
||||
"docs": "https://docs.customer.com",
|
||||
"file": "https://file.customer.com",
|
||||
"im": "https://im.customer.com",
|
||||
"update": "https://update.customer.com",
|
||||
"license": "https://license.customer.com",
|
||||
"push": "https://push.customer.com"
|
||||
},
|
||||
"features": {
|
||||
"file": true,
|
||||
"im": false,
|
||||
"push": false,
|
||||
"update": false,
|
||||
"license": false
|
||||
}
|
||||
}
|
||||
@ -1,6 +0,0 @@
|
||||
SMTP_HOST=
|
||||
SMTP_PORT=465
|
||||
SMTP_USERNAME=
|
||||
SMTP_TLS=true
|
||||
SMTP_SSL=true
|
||||
|
||||
@ -1,158 +0,0 @@
|
||||
# =============================================================================
|
||||
# XuqmGroup 私有化部署 — Nginx 路由配置
|
||||
#
|
||||
# 架构说明:
|
||||
# 所有外部请求统一进入 nginx(80/443),由 nginx 分发到各后端容器
|
||||
# 容器间通过 Docker 内部网络通信,无需暴露端口到宿主机
|
||||
#
|
||||
# 服务端口映射:
|
||||
# tenant-service 9001 /api/*(核心 API)、/actuator/*
|
||||
# file-service 8086 /file/*(文件上传下载)
|
||||
# im-service 8082 /api/im/*(IM HTTP)、/ws/im/*(WebSocket)
|
||||
# update-service 8084 /api/v1/updates/*、/api/v1/rn/*
|
||||
# push-service 8083 厂商回调(内部端口,不直接暴露给前端)
|
||||
# license-service 8085 内部调用
|
||||
# ops-web 80 /ops/*(运营后台)
|
||||
# tenant-web 80 /*(控制台,兜底路由)
|
||||
# =============================================================================
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name _;
|
||||
|
||||
# 强制 UTF-8 编码,防止中文乱码
|
||||
charset utf-8;
|
||||
|
||||
# 最大上传文件大小(文件服务单独设置 500m)
|
||||
client_max_body_size 100m;
|
||||
|
||||
# ----------- 健康检查 -----------
|
||||
# nginx 自身探活,用于负载均衡器和 healthcheck.sh
|
||||
location /health {
|
||||
return 200 "ok\n";
|
||||
add_header Content-Type text/plain;
|
||||
}
|
||||
|
||||
# ----------- 版本管理服务(update-service:8084)-----------
|
||||
# 包含:APP 版本列表、RN 热更新包、应用市场发布状态
|
||||
location /api/v1/updates/ {
|
||||
proxy_pass http://update-service:8084/api/v1/updates/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_read_timeout 60s;
|
||||
}
|
||||
|
||||
# RN 热更新包下载和列表
|
||||
location /api/v1/rn/ {
|
||||
proxy_pass http://update-service:8084/api/v1/rn/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_read_timeout 120s;
|
||||
}
|
||||
|
||||
# ----------- IM 服务(im-service:8082)-----------
|
||||
# IM HTTP API:消息发送、会话管理、平台事件
|
||||
location /api/im/ {
|
||||
proxy_pass http://im-service:8082/api/im/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_read_timeout 60s;
|
||||
}
|
||||
|
||||
# IM WebSocket 长连接(客户端消息收发)
|
||||
# 注意:不加尾部斜杠,否则 /ws/im?token=xxx 不匹配(nginx prefix matching 不含 ?)
|
||||
location /ws/im {
|
||||
proxy_pass http://im-service:8082/ws/im;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_read_timeout 3600s; # WebSocket 保持 1 小时
|
||||
}
|
||||
|
||||
# ----------- License 服务(license-service:8085)-----------
|
||||
# 注意:必须在通用 /api/ 之前声明
|
||||
location /api/license/ {
|
||||
proxy_pass http://license-service:8085/api/license/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_read_timeout 60s;
|
||||
}
|
||||
|
||||
# ----------- 文件服务 API 路径(file-service:8086)-----------
|
||||
# 注意:必须在通用 /api/ 之前声明,防止走 tenant-service 的 100m 限制
|
||||
location /api/file/ {
|
||||
proxy_pass http://file-service:8086/api/file/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
client_max_body_size 500m;
|
||||
proxy_read_timeout 300s;
|
||||
proxy_send_timeout 300s;
|
||||
}
|
||||
|
||||
# ----------- 核心 API(tenant-service:9001)-----------
|
||||
# 注意:tenant-service 运行在 9001 端口(不是 8080)
|
||||
# 包含:认证、租户管理、App 管理、SDK 配置、私有化部署状态
|
||||
location /api/ {
|
||||
proxy_pass http://tenant-service:9001/api/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_read_timeout 60s;
|
||||
}
|
||||
|
||||
# Spring Boot Actuator 健康检查(内部监控用)
|
||||
location /actuator/ {
|
||||
proxy_pass http://tenant-service:9001/actuator/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
}
|
||||
|
||||
# ----------- 文件服务(file-service:8086)-----------
|
||||
# 文件上传下载,支持大文件(最大 500MB)
|
||||
location /file/ {
|
||||
proxy_pass http://file-service:8086/file/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
client_max_body_size 500m;
|
||||
proxy_read_timeout 300s;
|
||||
proxy_send_timeout 300s;
|
||||
}
|
||||
|
||||
# ----------- 文档站(tenant-web 内置,VitePress base=/docs/)-----------
|
||||
location /docs/ {
|
||||
proxy_pass http://tenant-web:80/docs/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
}
|
||||
|
||||
# ----------- 运营后台(ops-web:80)-----------
|
||||
# 管理员登录入口:http://<部署地址>/ops
|
||||
location /ops {
|
||||
proxy_pass http://ops-web:80;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
}
|
||||
|
||||
# ----------- 控制台前端(tenant-web:80)-----------
|
||||
# 租户登录界面,兜底路由,必须放最后
|
||||
# sub_filter 替换 JS bundle 中硬编码的生产域名,私有化部署不再出现 xuqinmin.com
|
||||
# Accept-Encoding "" 禁用上游压缩,保证 sub_filter 能处理 JS 文本内容
|
||||
location / {
|
||||
proxy_pass http://tenant-web:80;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header Accept-Encoding "";
|
||||
sub_filter 'wss://im.dev.xuqinmin.com/ws/im' 'ws://$host/ws/im';
|
||||
sub_filter 'https://dev.xuqinmin.com' 'http://$host';
|
||||
sub_filter_once off;
|
||||
sub_filter_types text/javascript application/javascript; # text/html 是 nginx 默认,无需重复声明
|
||||
}
|
||||
}
|
||||
@ -1,24 +0,0 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"configVersion": "2026.05.18-private.1",
|
||||
"deployment": "PRIVATE",
|
||||
"appKey": "ak_private_default",
|
||||
"controlBaseUrl": "https://console.customer.com",
|
||||
"fileBaseUrl": "https://file.customer.com",
|
||||
"imApiBaseUrl": "https://im.customer.com",
|
||||
"imWsUrl": "wss://im.customer.com/ws/im",
|
||||
"pushBaseUrl": "https://push.customer.com",
|
||||
"updateBaseUrl": "https://update.customer.com",
|
||||
"licenseBaseUrl": "https://license.customer.com",
|
||||
"docsBaseUrl": "https://docs.customer.com",
|
||||
"features": {
|
||||
"file": true,
|
||||
"im": false,
|
||||
"push": false,
|
||||
"update": false,
|
||||
"license": false
|
||||
},
|
||||
"connectTimeoutMs": 10000,
|
||||
"readTimeoutMs": 30000,
|
||||
"logLevel": "WARN"
|
||||
}
|
||||
@ -1,5 +0,0 @@
|
||||
TENANT_BOOTSTRAP_EMAIL=admin@customer.com
|
||||
TENANT_BOOTSTRAP_USERNAME=admin
|
||||
TENANT_BOOTSTRAP_PASSWORD=change-me-on-first-login
|
||||
TENANT_BOOTSTRAP_APP_KEY=ak_private_default
|
||||
|
||||
41
config/vendors/push.env
vendored
41
config/vendors/push.env
vendored
@ -1,41 +0,0 @@
|
||||
# ========== Huawei Push (HMS) ==========
|
||||
HUAWEI_PUSH_ENABLED=false
|
||||
# HUAWEI_PUSH_APP_ID=
|
||||
# HUAWEI_PUSH_APP_SECRET=
|
||||
# HUAWEI_PUSH_CLIENT_ID=
|
||||
# HUAWEI_PUSH_CLIENT_SECRET=
|
||||
|
||||
# ========== Xiaomi Push ==========
|
||||
MI_PUSH_ENABLED=false
|
||||
# MI_PUSH_APP_SECRET=
|
||||
# MI_PUSH_PACKAGE_NAME=
|
||||
|
||||
# ========== OPPO Push ==========
|
||||
OPPO_PUSH_ENABLED=false
|
||||
# OPPO_PUSH_APP_KEY=
|
||||
# OPPO_PUSH_MASTER_SECRET=
|
||||
|
||||
# ========== vivo Push ==========
|
||||
VIVO_PUSH_ENABLED=false
|
||||
# VIVO_PUSH_APP_ID=
|
||||
# VIVO_PUSH_APP_KEY=
|
||||
# VIVO_PUSH_APP_SECRET=
|
||||
|
||||
# ========== Honor Push ==========
|
||||
HONOR_PUSH_ENABLED=false
|
||||
# HONOR_PUSH_APP_ID=
|
||||
# HONOR_PUSH_CLIENT_ID=
|
||||
# HONOR_PUSH_CLIENT_SECRET=
|
||||
|
||||
# ========== APNs (Apple Push) ==========
|
||||
APNS_ENABLED=false
|
||||
# APNS_KEY_ID=
|
||||
# APNS_TEAM_ID=
|
||||
# APNS_BUNDLE_ID=
|
||||
# APNS_KEY_FILE=/config/vendors/apns-key.p8
|
||||
# APNS_PRODUCTION=false
|
||||
|
||||
# ========== FCM (Firebase Cloud Messaging — optional) ==========
|
||||
FCM_ENABLED=false
|
||||
# FCM_SERVER_KEY=
|
||||
# FCM_PROJECT_ID=
|
||||
28
config/vendors/store-submit.env
vendored
28
config/vendors/store-submit.env
vendored
@ -1,28 +0,0 @@
|
||||
# ========== Huawei AppGallery Connect ==========
|
||||
HUAWEI_STORE_ENABLED=false
|
||||
# HUAWEI_STORE_CLIENT_ID=
|
||||
# HUAWEI_STORE_CLIENT_SECRET=
|
||||
# HUAWEI_STORE_APP_ID=
|
||||
|
||||
# ========== Xiaomi Developer Platform ==========
|
||||
MI_STORE_ENABLED=false
|
||||
# MI_STORE_USERNAME=
|
||||
# MI_STORE_PASSWORD=
|
||||
# MI_STORE_APP_ID=
|
||||
|
||||
# ========== OPPO Open Platform ==========
|
||||
OPPO_STORE_ENABLED=false
|
||||
# OPPO_STORE_CLIENT_ID=
|
||||
# OPPO_STORE_CLIENT_SECRET=
|
||||
# OPPO_STORE_PKG_NAME=
|
||||
|
||||
# ========== vivo Open Platform ==========
|
||||
VIVO_STORE_ENABLED=false
|
||||
# VIVO_STORE_ACCESS_KEY=
|
||||
# VIVO_STORE_ACCESS_SECRET=
|
||||
|
||||
# ========== Honor Developer Center ==========
|
||||
HONOR_STORE_ENABLED=false
|
||||
# HONOR_STORE_CLIENT_ID=
|
||||
# HONOR_STORE_CLIENT_SECRET=
|
||||
# HONOR_STORE_APP_ID=
|
||||
@ -1,37 +0,0 @@
|
||||
DEPLOYMENT_MODE=PRIVATE
|
||||
TENANT_REGISTER_ENABLED=false
|
||||
TENANT_BOOTSTRAP_ENABLED=true
|
||||
|
||||
ENABLE_FILE=true
|
||||
ENABLE_IM=false
|
||||
ENABLE_PUSH=false
|
||||
ENABLE_UPDATE=false
|
||||
ENABLE_LICENSE=false
|
||||
|
||||
MYSQL_HOST=127.0.0.1
|
||||
MYSQL_PORT=3306
|
||||
MYSQL_DATABASE=xuqm_private
|
||||
MYSQL_USERNAME=xuqm
|
||||
|
||||
REDIS_HOST=127.0.0.1
|
||||
REDIS_PORT=6379
|
||||
REDIS_DATABASE=0
|
||||
|
||||
CONSOLE_DOMAIN=https://console.customer.com
|
||||
OPS_DOMAIN=https://ops.customer.com
|
||||
DOCS_DOMAIN=https://docs.customer.com
|
||||
FILE_DOMAIN=https://file.customer.com
|
||||
IM_DOMAIN=https://im.customer.com
|
||||
UPDATE_DOMAIN=https://update.customer.com
|
||||
LICENSE_DOMAIN=https://license.customer.com
|
||||
PUSH_DOMAIN=https://push.customer.com
|
||||
|
||||
# Internal service URLs (used by SDK config endpoint)
|
||||
SDK_FILE_SERVICE_URL=https://file.customer.com
|
||||
SDK_IM_API_URL=https://im.customer.com
|
||||
SDK_IM_WS_URL=wss://im.customer.com/ws/im
|
||||
|
||||
# 系统 IM 通信应用 key(私有化服务间消息通知使用此 app_key 连接 IM 服务)
|
||||
# 由 deploy 脚本或 migrate-tenant.sh 自动写入,此处为默认值
|
||||
SYSTEM_APP_KEY=ak_409e217e4aa14254ad73ad3c
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户