Runbook

自有服务器 Java API 部署 Runbook

用于把 Spring Boot API、管理后台接口或任务服务部署到自有服务器。

怎么执行这份 Runbook

先检查前置条件,再按命令块执行。任何命令都要根据客户环境替换域名、路径、服务名和数据库名,不要复制示例里的占位值直接跑。

部署完成后必须做验证;验证不过就按回滚路径退回,并在交接记录里写清原因。

执行命令

命令是模板,不含真实密钥。执行前必须替换项目名、路径、域名、服务名和数据库名。

构建 jar

./mvnw clean package -DskipTests=false
# 或
mvn clean package -DskipTests=false

上传和启动

scp target/app.jar user@server:/opt/app/app.jar
ssh user@server
cd /opt/app
java -jar app.jar --spring.profiles.active=prod

systemd 重启示例

sudo systemctl daemon-reload
sudo systemctl restart app.service
sudo systemctl status app.service --no-pager

前置条件

服务器系统、登录方式、应用目录、JDK 版本和端口已经确认。
数据库、Redis、对象存储和第三方服务连接信息已准备在服务器环境变量中。
应用有可执行 jar 或明确的构建命令。
上线前已有数据库备份和回滚包。

部署验证

检查 `/health` 或约定健康检查接口返回 200。
检查至少一个读接口、一个写接口和一个权限接口。
检查应用日志、Nginx 日志和数据库连接日志。
确认服务重启后仍能自动恢复。

回滚路径

保留上一个 jar,例如 `/opt/app/releases/app-previous.jar`。
回滚时切换 symlink 或复制上一版本 jar 后重启 systemd。
如果包含数据库迁移,先按数据库回滚方案处理。
回滚后验证健康检查、核心接口和日志。

交接说明

记录 JDK 版本、应用目录、jar 名称、端口、环境变量名、日志路径。
记录 systemd service 路径、重启命令、健康检查 URL 和回滚命令。
不要在仓库中保存数据库密码、JWT 密钥、支付密钥或服务器私钥。
Contact

部署完成后,记录验证和回滚

部署不是跑完命令就结束。必须记录验证 URL、日志路径、备份位置、回滚命令和未验证风险。

刘鸡血 微信二维码微信扫码添加