73 lines
1.9 KiB
Bash
73 lines
1.9 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
cd "$REPO_ROOT"
|
|
|
|
# Default deploy target (can be overridden by positional args)
|
|
DEFAULT_REMOTE="root@111.228.39.147"
|
|
DEFAULT_REMOTE_APP_DIR="/root/deerflow2"
|
|
|
|
usage() {
|
|
cat <<'EOF'
|
|
Usage:
|
|
./scripts/deploy-frontend-standalone.sh [remote] [remote_app_dir]
|
|
|
|
Arguments:
|
|
remote SSH target, optional. Default: root@111.228.39.147
|
|
remote_app_dir Remote deerflow2 root dir, optional. Default: /root/deerflow2
|
|
|
|
Example:
|
|
./scripts/deploy-frontend-standalone.sh
|
|
./scripts/deploy-frontend-standalone.sh ubuntu@1.2.3.4 /opt/deerflow2
|
|
|
|
Notes:
|
|
- Run this script on your local machine (build machine), not on the server.
|
|
- Requires: pnpm, rsync, ssh
|
|
- Script will run:
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl restart deerflow.service
|
|
EOF
|
|
}
|
|
|
|
if [ "${1:-}" = "-h" ] || [ "${1:-}" = "--help" ]; then
|
|
usage
|
|
exit 0
|
|
fi
|
|
|
|
if [ "$#" -gt 2 ]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
REMOTE="${1:-$DEFAULT_REMOTE}"
|
|
REMOTE_APP_DIR="${2:-$DEFAULT_REMOTE_APP_DIR}"
|
|
|
|
echo "==> Deploy target:"
|
|
echo " remote: $REMOTE"
|
|
echo " app dir: $REMOTE_APP_DIR"
|
|
|
|
echo "==> Building frontend (standalone)..."
|
|
pnpm -C frontend build
|
|
|
|
echo "==> Uploading standalone server..."
|
|
rsync -azP --delete --info=progress2 \
|
|
frontend/.next/standalone/ \
|
|
"$REMOTE:$REMOTE_APP_DIR/frontend/.next/standalone/"
|
|
|
|
echo "==> Uploading static assets..."
|
|
rsync -azP --info=progress2 \
|
|
frontend/.next/static/ \
|
|
"$REMOTE:$REMOTE_APP_DIR/frontend/.next/standalone/.next/static/"
|
|
|
|
echo "==> Uploading public assets..."
|
|
rsync -azP --info=progress2 \
|
|
frontend/public/ \
|
|
"$REMOTE:$REMOTE_APP_DIR/frontend/.next/standalone/public/"
|
|
|
|
echo "==> Reloading systemd and restarting deerflow.service on remote host..."
|
|
ssh "$REMOTE" "sudo systemctl daemon-reload && sudo systemctl restart deerflow.service"
|
|
|
|
echo "==> Done."
|