#!/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_HUOBAO_STATE_ROOT:-$REMOTE_ROOT/data/huobao}" LOCAL_SOURCE_ROOT="${STORYFORGE_HUOBAO_SOURCE_ROOT:-/Users/kris/code/huobao-drama-upstream}" HUOBAO_PORT="${STORYFORGE_HUOBAO_PORT:-127.0.0.1:25678: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 FILTERED_SOURCE="$TMPDIR_DEPLOY/huobao-drama-source" mkdir -p "$FILTERED_SOURCE" "$TMPDIR_DEPLOY/state/data" rsync -a \ --exclude '.git' \ --exclude 'data' \ --exclude 'web/node_modules' \ --exclude 'web/dist' \ --exclude '.DS_Store' \ "$LOCAL_SOURCE_ROOT/" "$FILTERED_SOURCE/" if [ -f "$LOCAL_SOURCE_ROOT/data/drama.db" ]; then cp "$LOCAL_SOURCE_ROOT/data/drama.db" "$TMPDIR_DEPLOY/state/data/drama.db" fi sshpass -p "$PW" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$REMOTE_USER@$REMOTE_HOST" \ "mkdir -p '$REMOTE_COMPOSE_DIR' '$REMOTE_ROOT/huobao-drama-source' '$REMOTE_STATE_ROOT/data'" sshpass -p "$PW" scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \ "$ROOT/deploy/storyforge-server-huobao.compose.yaml" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_COMPOSE_DIR/storyforge-server-huobao.compose.yaml" sshpass -p "$PW" rsync -a -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" \ "$FILTERED_SOURCE/" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_ROOT/huobao-drama-source/" sshpass -p "$PW" rsync -a -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" \ "$TMPDIR_DEPLOY/state/data/" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_STATE_ROOT/data/" sshpass -p "$PW" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$REMOTE_USER@$REMOTE_HOST" \ "sudo sh -lc 'cd \"$REMOTE_COMPOSE_DIR\" && STORYFORGE_HUOBAO_PORT=\"$HUOBAO_PORT\" STORYFORGE_HUOBAO_IMAGE=storyforge-huobao:cloud docker compose -f storyforge-server-huobao.compose.yaml up -d --build --force-recreate storyforge-huobao'" sshpass -p "$PW" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$REMOTE_USER@$REMOTE_HOST" \ "curl -fsS --max-time 30 http://127.0.0.1:25678/health >/dev/null" echo "cloud huobao deployed: http://127.0.0.1:25678/health"