| 123456789101112131415161718192021222324252627282930 |
- #!/usr/bin/env bash
- # 构建并发布到 /srv/agent-server/app,同步技能目录,重启服务。
- # 用法:deploy/deploy.sh(需要 sudo 权限;首次部署前先执行 sudo deploy/install.sh)
- set -euo pipefail
- cd "$(dirname "$0")/.."
- ROOT=/srv/agent-server
- pnpm install --frozen-lockfile
- pnpm -r build
- STAGE=$(mktemp -d)
- trap 'rm -rf "$STAGE"' EXIT
- pnpm --filter @agent-server/server deploy --prod "$STAGE/server" >/dev/null
- sudo rsync -a --delete "$STAGE/server/" "$ROOT/app/server/"
- sudo rsync -a --delete apps/admin/dist/ "$ROOT/app/admin/"
- sudo rsync -a --delete skills/ "$ROOT/skills/"
- sudo chown -R root:root "$ROOT/app" "$ROOT/skills"
- sudo chmod -R a+rX "$ROOT/app" "$ROOT/skills"
- sudo systemctl restart agent-server
- for _ in $(seq 1 20); do
- if curl -sf http://127.0.0.1:8787/healthz >/dev/null; then
- echo "部署完成:http://127.0.0.1:8787/admin/"
- exit 0
- fi
- sleep 0.5
- done
- echo "服务没有正常启动,查看日志:journalctl -u agent-server -n 50" >&2
- exit 1
|