Support multiple server deploy instances

This commit is contained in:
wuyang6
2026-05-11 15:58:21 +08:00
parent f22de8a40b
commit 7ad0e8b268
3 changed files with 33 additions and 5 deletions
+16 -2
View File
@@ -8,8 +8,9 @@ set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
ENV_FILE="${ROOT_DIR}/.env.deploy"
PYTHON_VERSION="${PYTHON_VERSION:-3.10.14}"
BACKEND_SERVICE="zk-data-agent-backend"
FRONTEND_SERVICE="zk-data-agent-frontend"
DEPLOY_INSTANCE="${CLAW_DEPLOY_INSTANCE:-zk-data-agent}"
BACKEND_SERVICE="${CLAW_BACKEND_SERVICE:-${DEPLOY_INSTANCE}-backend}"
FRONTEND_SERVICE="${CLAW_FRONTEND_SERVICE:-${DEPLOY_INSTANCE}-frontend}"
USER_SYSTEMD_DIR="${HOME}/.config/systemd/user"
BRANCH=""
FORCE=0
@@ -72,6 +73,12 @@ fail() {
exit 1
}
configure_instance_names() {
DEPLOY_INSTANCE="${CLAW_DEPLOY_INSTANCE:-${DEPLOY_INSTANCE:-zk-data-agent}}"
BACKEND_SERVICE="${CLAW_BACKEND_SERVICE:-${DEPLOY_INSTANCE}-backend}"
FRONTEND_SERVICE="${CLAW_FRONTEND_SERVICE:-${DEPLOY_INSTANCE}-frontend}"
}
require_command() {
local name="$1"
local hint="$2"
@@ -155,6 +162,7 @@ export OPENAI_API_KEY=$(printf "%q" "${api_key}")
export OPENAI_BASE_URL=$(printf "%q" "${base_url}")
export OPENAI_MODEL=$(printf "%q" "${model}")
export CLAW_DEPLOY_INSTANCE=$(printf "%q" "${DEPLOY_INSTANCE}")
export CLAW_BACKEND_HOST=$(printf "%q" "${backend_host}")
export CLAW_BACKEND_PORT=$(printf "%q" "${backend_port}")
export CLAW_FRONTEND_HOST=$(printf "%q" "${frontend_host}")
@@ -168,10 +176,12 @@ ensure_env_file() {
if [[ -f "${ENV_FILE}" ]]; then
# shellcheck disable=SC1090
source "${ENV_FILE}"
configure_instance_names
if [[ -z "${OPENAI_API_KEY:-}" ]]; then
fail "${ENV_FILE} 缺少 OPENAI_API_KEY,请编辑该文件补齐。"
fi
log "使用本机部署配置:${ENV_FILE}"
echo "CLAW_DEPLOY_INSTANCE=${DEPLOY_INSTANCE}"
echo "OPENAI_BASE_URL=${OPENAI_BASE_URL:-}"
echo "OPENAI_MODEL=${OPENAI_MODEL:-}"
echo "OPENAI_API_KEY=已配置"
@@ -190,6 +200,7 @@ ensure_env_file() {
[[ -n "${api_key}" ]] || fail "OPENAI_API_KEY 不能为空。"
prompt_value base_url "请输入 OPENAI_BASE_URL" "http://model.mify.ai.srv/v1"
prompt_value model "请输入 OPENAI_MODEL" "xiaomi/mimo-v2-flash"
configure_instance_names
prompt_value backend_host "请输入后端监听地址" "127.0.0.1"
prompt_value backend_port "请输入后端端口" "8765"
prompt_value frontend_host "请输入前端监听地址" "0.0.0.0"
@@ -283,6 +294,8 @@ install_systemd_service() {
mkdir -p "${USER_SYSTEMD_DIR}"
sed \
-e "s#__PROJECT_ROOT__#${ROOT_DIR}#g" \
-e "s#__BACKEND_SERVICE__#${BACKEND_SERVICE}#g" \
-e "s#__FRONTEND_SERVICE__#${FRONTEND_SERVICE}#g" \
"${template_path}" >"${tmp_path}"
install -m 0644 "${tmp_path}" "${target_path}"
rm -f "${tmp_path}"
@@ -329,6 +342,7 @@ main() {
bootstrap_system_packages
update_git
ensure_env_file
configure_instance_names
ensure_python
build_frontend
remember_node_runtime