54 lines
1.2 KiB
Markdown
54 lines
1.2 KiB
Markdown
# SignalScout 部署
|
||
|
||
SignalScout 使用和 `agent-desk` 一致的 Gitea + Jenkins 发布链路。
|
||
|
||
## 服务器路径
|
||
|
||
- Gitea 仓库:`gitadmin/signalscout-backend`
|
||
- Jenkins Job:`signalscout-backend`
|
||
- 源码目录:`/opt/signalscout-source`
|
||
- 发布目录:`/opt/signalscout`
|
||
- systemd 服务:`signalscout`
|
||
- 本机监听:`127.0.0.1:8020`
|
||
- 线上域名:`https://signalscout.jaycode.online`
|
||
|
||
## 流水线
|
||
|
||
Jenkins 从 Gitea 仓库读取根目录 `Jenkinsfile`,然后通过已有凭据 SSH 到服务器执行:
|
||
|
||
```bash
|
||
deployment/jenkins/deploy_backend.sh
|
||
```
|
||
|
||
脚本负责:
|
||
|
||
- 从 Gitea 拉取 `main` 分支
|
||
- 创建测试虚拟环境
|
||
- 执行 `ruff` 和 `pytest`
|
||
- 生成发布目录
|
||
- 执行 Alembic 迁移和主题种子初始化
|
||
- 重启 `signalscout` systemd 服务
|
||
- 检查本机和公网健康接口
|
||
|
||
## Nginx 与 Cloudflare Tunnel
|
||
|
||
域名通过 Cloudflare Tunnel 进入服务器,Nginx 监听本机端口:
|
||
|
||
```nginx
|
||
server {
|
||
listen 127.0.0.1:8360;
|
||
server_name signalscout.jaycode.online;
|
||
|
||
location / {
|
||
proxy_pass http://127.0.0.1:8020;
|
||
}
|
||
}
|
||
```
|
||
|
||
Cloudflare Tunnel ingress 指向:
|
||
|
||
```yaml
|
||
- hostname: signalscout.jaycode.online
|
||
service: http://127.0.0.1:8360
|
||
```
|