Files
storyforge/scripts/deploy_server_storyforge_n8n.sh
kris c3e9b7edbc
Some checks failed
StoryForge CI / Baseline checks (push) Has been cancelled
StoryForge CI / Backend tests (push) Has been cancelled
StoryForge CI / Web tests (push) Has been cancelled
feat: migrate public n8n and huobao to server
2026-04-06 10:34:01 +08:00

35 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT="$(CDPATH= cd -- "$(dirname "$0")/.." && pwd)"
REMOTE_HOST="${AG_HOST:-111.231.132.51}"
REMOTE_USER="${AG_USER:-ubuntu}"
REMOTE_ROOT="${STORYFORGE_SERVER_REMOTE_ROOT:-/home/ubuntu/storyforge}"
REMOTE_COMPOSE_DIR="$REMOTE_ROOT/deploy/cloud"
REMOTE_STATE_ROOT="${STORYFORGE_N8N_STATE_ROOT:-$REMOTE_ROOT/data/n8n}"
N8N_PORT="${STORYFORGE_N8N_PORT:-127.0.0.1:25670:5678}"
PW="${AG_SERVER_PASSWORD:-$(security find-generic-password -a "$REMOTE_USER" -s ai-glasses-debug-ssh -w)}"
TMPDIR_DEPLOY="$(mktemp -d)"
trap 'rm -rf "$TMPDIR_DEPLOY"' EXIT
mkdir -p "$TMPDIR_DEPLOY/data"
rsync -a "$ROOT/data/n8n/" "$TMPDIR_DEPLOY/data/"
sshpass -p "$PW" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$REMOTE_USER@$REMOTE_HOST" \
"mkdir -p '$REMOTE_COMPOSE_DIR' '$REMOTE_ROOT/n8n' '$REMOTE_STATE_ROOT'"
sshpass -p "$PW" scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
"$ROOT/deploy/storyforge-server-n8n.compose.yaml" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_COMPOSE_DIR/storyforge-server-n8n.compose.yaml"
sshpass -p "$PW" rsync -a -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" \
"$ROOT/n8n/" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_ROOT/n8n/"
sshpass -p "$PW" rsync -a -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" \
"$TMPDIR_DEPLOY/data/" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_STATE_ROOT/"
sshpass -p "$PW" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$REMOTE_USER@$REMOTE_HOST" \
"sudo sh -lc 'cd \"$REMOTE_COMPOSE_DIR\" && STORYFORGE_N8N_PORT=\"$N8N_PORT\" docker compose -f storyforge-server-n8n.compose.yaml up -d --force-recreate storyforge-n8n'"
sshpass -p "$PW" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$REMOTE_USER@$REMOTE_HOST" \
"curl -fsS --max-time 20 http://127.0.0.1:25670/healthz >/dev/null"
echo "cloud n8n deployed: http://127.0.0.1:25670/healthz"