XuqmGroup-PrivateDeploy/scripts/render-config.sh
2026-05-18 19:49:31 +08:00

100 行
2.6 KiB
Bash
可执行文件

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
. "$ROOT_DIR/scripts/lib.sh"
load_env
strip_protocol() {
local value="$1"
value="${value#https://}"
value="${value#http://}"
printf '%s' "$value"
}
ws_url() {
local value="$1"
local host
host="$(strip_protocol "$value")"
if [ -z "$host" ]; then
printf ''
else
printf 'wss://%s/ws/im' "$host"
fi
}
audit "render-config" "STARTED" "rendering runtime files"
progress "render-config" "STARTED" "rendering runtime files"
mkdir -p "$ROOT_DIR/config/docs" "$ROOT_DIR/config/sdk"
cat > "$ROOT_DIR/config/docs/docs-runtime.json" <<EOF
{
"deployment": "PRIVATE",
"privateVersion": "${PRIVATE_VERSION:-2026.05.18-private.1}",
"domains": {
"console": "${CONSOLE_DOMAIN:-}",
"docs": "${DOCS_DOMAIN:-}",
"file": "${FILE_DOMAIN:-}",
"im": "${IM_DOMAIN:-}",
"update": "${UPDATE_DOMAIN:-}",
"license": "${LICENSE_DOMAIN:-}",
"push": "${PUSH_DOMAIN:-}"
},
"features": {
"file": ${ENABLE_FILE:-true},
"im": ${ENABLE_IM:-false},
"push": ${ENABLE_PUSH:-false},
"update": ${ENABLE_UPDATE:-false},
"license": ${ENABLE_LICENSE:-false}
}
}
EOF
cat > "$ROOT_DIR/config/sdk/xuqm-private-sdk.json" <<EOF
{
"schemaVersion": 1,
"configVersion": "${PRIVATE_VERSION:-2026.05.18-private.1}",
"deployment": "PRIVATE",
"appKey": "${TENANT_BOOTSTRAP_APP_KEY:-ak_private_default}",
"controlBaseUrl": "${CONSOLE_DOMAIN:-}",
"fileBaseUrl": "${FILE_DOMAIN:-}",
"imApiBaseUrl": "${IM_DOMAIN:-}",
"imWsUrl": "$(ws_url "${IM_DOMAIN:-}")",
"pushBaseUrl": "${PUSH_DOMAIN:-}",
"updateBaseUrl": "${UPDATE_DOMAIN:-}",
"licenseBaseUrl": "${LICENSE_DOMAIN:-}",
"docsBaseUrl": "${DOCS_DOMAIN:-}",
"features": {
"file": ${ENABLE_FILE:-true},
"im": ${ENABLE_IM:-false},
"push": ${ENABLE_PUSH:-false},
"update": ${ENABLE_UPDATE:-false},
"license": ${ENABLE_LICENSE:-false}
},
"connectTimeoutMs": 10000,
"readTimeoutMs": 30000,
"logLevel": "WARN"
}
EOF
cat > "$ROOT_DIR/.deploy-state/current.json" <<EOF
{
"privateVersion": "${PRIVATE_VERSION:-2026.05.18-private.1}",
"profiles": ["${COMPOSE_PROFILES:-base}"],
"mysql": {"mode": "${MYSQL_MODE:-external}", "status": "UNKNOWN"},
"redis": {"mode": "${REDIS_MODE:-external}", "status": "UNKNOWN"},
"services": {
"file": ${ENABLE_FILE:-true},
"im": ${ENABLE_IM:-false},
"push": ${ENABLE_PUSH:-false},
"update": ${ENABLE_UPDATE:-false},
"license": ${ENABLE_LICENSE:-false}
},
"lastHealthcheck": null
}
EOF
audit "render-config" "DONE" "runtime files rendered"
progress "render-config" "DONE" "runtime files rendered"