chore(remote43): standardize stable crm repo root

This commit is contained in:
phamnazage-jpg
2026-05-28 10:13:13 +08:00
parent 3a00f1b859
commit 03c4b5236f
8 changed files with 87 additions and 11 deletions

View File

@@ -28,10 +28,13 @@ HOST_BINARY="${HOST_BINARY:-}"
CRM_BINARY="${CRM_BINARY:-$ROOT_DIR/server}"
PACK_DIR="${PACK_DIR:-$ROOT_DIR/packs/openai-cn-pack}"
LOCAL_SHARED_PACK_DIR="${LOCAL_SHARED_PACK_DIR:-/tmp/openai-cn-pack-${STACK_NAME}}"
LOCAL_REPO_BUNDLE="${LOCAL_REPO_BUNDLE:-/tmp/sub2api-cn-relay-manager-main.bundle}"
LOCAL_OPERATOR_ENV_FILE="${LOCAL_OPERATOR_ENV_FILE:-/tmp/remote43-patched-stack-${HOST_PORT}.env}"
LOCAL_TUNNEL_SCRIPT="${LOCAL_TUNNEL_SCRIPT:-/tmp/remote43-patched-stack-${HOST_PORT}.tunnel.sh}"
REMOTE_ROOT="${REMOTE_ROOT:-/home/ubuntu/${STACK_NAME}_${HOST_PORT}}"
REMOTE_PACK_PATH="${REMOTE_PACK_PATH:-$LOCAL_SHARED_PACK_DIR}"
REMOTE_REPO_ROOT="${REMOTE_REPO_ROOT:-/home/ubuntu/sub2api-cn-relay-manager-git-current}"
REMOTE_REPO_BUNDLE="$REMOTE_ROOT/sub2api-cn-relay-manager.bundle"
REMOTE_HOST_ENV_FILE="$REMOTE_ROOT/.env.host"
REMOTE_CRM_ENV_FILE="$REMOTE_ROOT/.env.crm"
REMOTE_BOOTSTRAP_FILE="$REMOTE_ROOT/bootstrap.sh"
@@ -87,6 +90,19 @@ prepare_local_shared_pack() {
cp -R "$PACK_DIR" "$LOCAL_SHARED_PACK_DIR"
}
prepare_local_repo_bundle() {
case "$LOCAL_REPO_BUNDLE" in
/tmp/*) ;;
*)
die "LOCAL_REPO_BUNDLE must stay under /tmp, got: $LOCAL_REPO_BUNDLE"
;;
esac
mkdir -p "$(dirname "$LOCAL_REPO_BUNDLE")"
rm -f "$LOCAL_REPO_BUNDLE"
git -C "$ROOT_DIR" bundle create "$LOCAL_REPO_BUNDLE" main
}
write_local_tunnel_script() {
cat > "$LOCAL_TUNNEL_SCRIPT" <<EOF
#!/usr/bin/env bash
@@ -110,6 +126,7 @@ write_operator_env() {
HOST_NAME "$HOST_NAME" \
PACK_PATH "$LOCAL_SHARED_PACK_DIR" \
REMOTE_HOST_ENV_FILE "$REMOTE_HOST_ENV_FILE" \
REMOTE_REPO_ROOT "$REMOTE_REPO_ROOT" \
KEY "$KEY" \
REMOTE "$REMOTE" \
CRM_ADMIN_TOKEN "$CRM_ADMIN_TOKEN"
@@ -119,6 +136,7 @@ write_operator_env() {
main() {
require_cmd bash
require_cmd curl
require_cmd git
require_cmd python3
require_cmd ssh
require_cmd scp
@@ -130,6 +148,7 @@ main() {
[[ "$REMOTE_PACK_PATH" == "$LOCAL_SHARED_PACK_DIR" ]] || die "REMOTE_PACK_PATH must equal LOCAL_SHARED_PACK_DIR so local/remote PACK_PATH stay identical"
prepare_local_shared_pack
prepare_local_repo_bundle
write_local_tunnel_script
write_operator_env
@@ -152,7 +171,8 @@ main() {
render_remote43_crm_env \
"$CRM_PORT" \
"file:${REMOTE_CRM_DB_FILE}?_foreign_keys=on&_busy_timeout=5000" \
"$CRM_ADMIN_TOKEN" > "$crm_env_file"
"$CRM_ADMIN_TOKEN" \
"$REMOTE_REPO_ROOT" > "$crm_env_file"
render_remote43_bootstrap_script \
"$REMOTE_ROOT" \
"$REMOTE_HOST_ENV_FILE" \
@@ -174,12 +194,15 @@ main() {
"$DB_NAME" \
"$HOST_PORT" \
"$CRM_PORT" \
"$HOST_CONTAINER_PORT" > "$bootstrap_file"
"$HOST_CONTAINER_PORT" \
"$REMOTE_REPO_ROOT" \
"$REMOTE_REPO_BUNDLE" > "$bootstrap_file"
chmod +x "$bootstrap_file"
ssh_remote "mkdir -p $(printf '%q' "$REMOTE_ROOT") $(printf '%q' "$(dirname "$REMOTE_PACK_PATH")") && rm -rf $(printf '%q' "$REMOTE_PACK_PATH")"
scp_remote "$HOST_BINARY" "$REMOTE:$REMOTE_HOST_BINARY"
scp_remote "$CRM_BINARY" "$REMOTE:$REMOTE_CRM_BINARY"
scp_remote "$LOCAL_REPO_BUNDLE" "$REMOTE:$REMOTE_REPO_BUNDLE"
scp_remote "$host_env_file" "$REMOTE:$REMOTE_HOST_ENV_FILE"
scp_remote "$crm_env_file" "$REMOTE:$REMOTE_CRM_ENV_FILE"
scp_remote "$bootstrap_file" "$REMOTE:$REMOTE_BOOTSTRAP_FILE"
@@ -191,6 +214,7 @@ remote43 patched stack prepared
remote host base: http://127.0.0.1:${HOST_PORT}
remote crm base: http://127.0.0.1:${CRM_PORT}
remote host env file: ${REMOTE_HOST_ENV_FILE}
remote repo root: ${REMOTE_REPO_ROOT}
local operator env file: ${LOCAL_OPERATOR_ENV_FILE}
local tunnel script: ${LOCAL_TUNNEL_SCRIPT}
shared pack path: ${LOCAL_SHARED_PACK_DIR}