🚀 deploy(build): 新增一键部署脚本与构建工具链
- 新增 deploy.sh:编译部署、systemd/Nginx 初始化、软链接版本管理与交互式回滚、部署后 /healthz 健康自检、certbot 自动申请 HTTPS 证书与续期重载 Hook - 新增 .deploy.env.example 部署配置模板,.deploy.env(不入库)覆盖脚本默认值,路径默认由 APP_NAME 派生,CERT_EMAIL 默认 admin@域名 - 新增 Makefile:build / build-linux 交叉编译 / test(含 go vet)/ clean - main.go 新增 Version/BuildTime 变量,使 -ldflags -X 注入生效并在启动日志打印 - systemd 工作目录改为代码目录,修复 config.yaml/.env/cache.db 相对路径加载失败 - .gitignore 忽略 .deploy.env 与 fanqie-* 编译产物;README 新增部署章节与 HTTPS 说明
This commit is contained in:
1 parent
6a473aea3e
commit
7da9184937
6 files changed
+506
-1
No files matched your search
@@ -395,6 +395,36 @@ cp .env.example .env
|
||||
|
||||
失败响应不缓存;评论类接口为动态数据,不缓存。
|
||||
|
||||
## 部署
|
||||
|
||||
### Linux 服务器(deploy.sh 一键部署)
|
||||
|
||||
```bash
|
||||
# 首次:编译 + 部署 + 写入 systemd/nginx 配置
|
||||
./deploy.sh v1.0.0 --init
|
||||
|
||||
# 日常:拉取代码 + 编译 + 部署 + 重启
|
||||
./deploy.sh v1.0.0
|
||||
|
||||
# 版本管理
|
||||
./deploy.sh --list # 列出已部署版本
|
||||
./deploy.sh --rollback v1.0.0 # 回滚到指定版本
|
||||
|
||||
# 服务运维
|
||||
sudo systemctl status fanqie
|
||||
sudo journalctl -u fanqie -f
|
||||
```
|
||||
|
||||
部署结构:二进制存于 `/opt/fanqie/bin/`,`fanqie-current` 软链接指向当前版本(保留最近 5 个),systemd 守护 + Nginx 反代,部署后自动做 `/healthz` 健康检查。
|
||||
|
||||
首次 `--init` 时若服务器装有 certbot,会自动申请 HTTPS 证书并配置 80→443 跳转(邮箱默认 `admin@域名`,可用 `.deploy.env` 的 `CERT_EMAIL` 覆盖);续期由 `certbot.timer` 自动完成,续期后经 deploy-hook 重载 Nginx。
|
||||
|
||||
### 本地交叉编译
|
||||
|
||||
```bash
|
||||
make build-linux VERSION=v1.0.0 # 产物 fanqie-v1.0.0-linux,scp 到服务器即可运行
|
||||
```
|
||||
|
||||
## 技术栈
|
||||
|
||||
- **Go 1.25** - 编程语言
|
||||
|
||||
Reference in new issue
Block a user