📦 Auto Deploy — 自动化 Git 部署到 Linux 服务器

v1.0.0

自动化部署 Git 项目到 Linux 服务器,支持私有 Git 仓库、构建(Node.js/Java)、SSH 部署、备份和健康检查。

0· 93·2 当前·2 累计
by @zjm1226·MIT-0
下载技能包
License
MIT-0
最后更新
2026/3/31
0
安全扫描
VirusTotal
Pending
查看报告
OpenClaw
可疑
high confidence
该技能的自动化 Git 部署功能与脚本一致,但存在多个不一致和风险的选择(硬编码凭据、密码_based SSH 自动化、广泛的高级工具权限),需要手动审查。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/3/31

1.0.0 - 首次发布,实现自动化部署 Git 项目至 Linux 服务器,支持私有 Git 仓库、构建、SSH 上传、部署、重启和健康检查。

Pending

安装命令

点击复制
官方npx clawhub@latest install auto-deploy
🇨🇳 镜像加速npx clawhub@latest install auto-deploy --registry https://cn.longxiaskill.com

技能文档

描述

自动化 Git 项目部署技能。支持从私有 Git 仓库拉取代码、构建打包、SSH 部署到 Linux 服务器。

适用场景

  • 用户提出开发需求后自动开发并部署
  • 代码修改后自动构建部署
  • 多项目部署管理

前置条件

1. Git 访问配置

方式 A:HTTP 认证

# 配置 Git 凭据
git config --global credential.helper store

方式 B:SSH Key(推荐)

# 生成 SSH Key
ssh-keygen -t ed25519 -C "openclaw-deploy" -f ~/.ssh/openclaw_deploy
# 将公钥添加到 Git 服务器
cat ~/.ssh/openclaw_deploy.pub

2. 服务器 SSH 配置

# 生成部署 SSH Key(如果复用上面的可以跳过)
ssh-keygen -t ed25519 -C "server-deploy" -f ~/.ssh/server_deploy
# 将公钥添加到服务器
ssh-copy-id -i ~/.ssh/server_deploy.pub user@server_ip

3. 验证连接

# 测试 Git 连接
git ls-remote http://192.168.1.169:8015/peninsula/points
# 测试服务器连接
ssh -i ~/.ssh/server_deploy user@server_ip "echo connected"

工作流程

标准部署流程

1. 接收需求 → 2. 拉取代码 → 3. 开发修改 → 4. Git 提交 → 5. 构建打包 → 6. SSH 传输 → 7. 服务器部署 → 8. 服务重启 → 9. 健康检查

详细步骤

步骤 1:拉取最新代码

cd /workspace/points
git pull origin main

步骤 2:开发修改

根据用户需求修改代码文件。

步骤 3:提交代码

git add .
git commit -m "feat: [需求描述]"
git push origin main

步骤 4:构建项目

Node.js 部分

cd /workspace/points
npm install
npm run build

Java 部分

cd /workspace/points/java-module
mvn clean package -DskipTests

步骤 5:打包部署产物

# 创建部署包
tar -czf points-deploy.tar.gz dist/ target/.jar

步骤 6:SSH 传输到服务器

scp -i ~/.ssh/server_deploy points-deploy.tar.gz user@server:/tmp/

步骤 7:服务器部署

ssh -i ~/.ssh/server_deploy user@server << 'EOF'
# 备份当前版本
cp -r /www/wwwroot/points /www/backup/points_$(date +%Y%m%d_%H%M%S)
# 解压新代码
tar -xzf /tmp/points-deploy.tar.gz -C /www/wwwroot/points
# 重启服务(根据实际服务管理方式)
# systemd: systemctl restart points-service
# 或宝塔面板: /etc/init.d/points restart
# 或 PM2(Node.js): pm2 restart points
# 清理临时文件
rm /tmp/points-deploy.tar.gz
EOF

步骤 8:健康检查

ssh -i ~/.ssh/server_deploy user@server "curl -s http://localhost:端口/health || exit 1"

配置项

DEPLOY_CONFIG.md 中配置以下信息:

配置项说明示例
git.urlGit 仓库地址http://192.168.1.169:8015/peninsula/points
git.branch默认分支main
server.host服务器 IP192.168.1.100
server.portSSH 端口22
server.userSSH 用户root
server.deployPath部署路径/www/wwwroot/points
project.type项目类型nodejs / java / nodejs+java
project.build.node.buildCmdNode 构建命令npm run build
project.build.java.buildCmdJava 构建命令mvn clean package
project.deploy.restartCmd重启命令pm2 restart points

错误处理

Git 连接失败

  • 检查网络连通性
  • 验证认证信息
  • 确认 SSH Key 已添加

SSH 连接失败

  • 检查服务器 SSH 服务状态
  • 验证 SSH Key 权限(chmod 600 ~/.ssh/server_deploy
  • 确认防火墙放行 SSH 端口

构建失败

  • 检查 Node.js/Java 版本
  • 确认依赖安装完整
  • 查看详细错误日志

部署失败

  • 检查部署目录权限
  • 确认磁盘空间充足
  • 回滚到备份版本

安全注意事项

  • 敏感信息保护

- 不要将密码、Token 写入配置文件 - 使用 SSH Key 代替密码认证 - SSH Key 设置权限 chmod 600

  • 权限控制

- 部署脚本需要 elevated 权限执行 - 限制可部署的服务器列表 - 敏感操作需要用户确认

  • 备份策略

- 每次部署前自动备份 - 保留最近 5 个版本 - 支持快速回滚

使用示例

简单需求(直接部署)

用户:帮我加个积分查询接口

1. 开发修改代码
  • 提交 Git
  • 自动构建部署
  • 回复用户:已完成部署 ✅

复杂需求(需要 Review)

用户:实现一个积分排行榜功能

1. 开发修改代码
  • 提交到 feature 分支
  • 回复用户:开发完成,请 Review
  • 用户确认后合并到 main 并部署

回滚流程

# 获取最新备份版本
BACKUP=$(ssh user@server "ls -t /www/backup/ | head -1")
# 恢复备份
ssh user@server << EOF
systemctl stop points-service
rm -rf /www/wwwroot/points/
cp -r /www/backup/$BACKUP/* /www/wwwroot/points/
systemctl start points-service
EOF

版本:1.0.0

最后更新:2026-03-26

数据来源:ClawHub ↗ · 中文优化:龙虾技能库