Guanghu Domestic Migration d1e47f4565
Some checks are pending
自动更新代码和重启 / update-and-restart (push) Waiting to run
CI检查 + 自动部署 / check (push) Waiting to run
CI检查 + 自动部署 / deploy (push) Blocked by required conditions
重启聊天服务 / restart (push) Waiting to run
chore: import sanitized domestic snapshot for REPO-002
Source snapshot: ca48d3ddf926d79aa138306164169baf764bb829
2026-07-17 15:54:41 +08:00

153 lines
4.0 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# skills/server-ops.hdlp · 服务器操作技能包
> HLDP://maomao/skills/server-ops
> 类型: 技能包
> 管辖: 仅 175.178.176.145
---
## @trigger
你需要操作毛毛的服务器——查看状态、重启服务、部署代码。
## @emergence
毛毛的服务器只有一台: 175.178.176.145。广州七区。4核4G。Ubuntu 24.04。
你有三种方式操作它。从最简单到最复杂。
## 方式一: Gatekeeper API (推荐·最安全)
Gatekeeper 运行在端口 3910。它接受 POST 请求,执行命令并返回结果。
```
基本格式:
curl -X POST http://175.178.176.145:3910/exec \
-H "Content-Type: application/json" \
-d '{"cmd":"你的命令"}'
返回格式: {"ok":true/false, "stdout":"...", "stderr":"..."}
```
### 常用操作
```bash
# 检查所有服务状态
curl -X POST http://175.178.176.145:3910/exec \
-H "Content-Type: application/json" \
-d '{"cmd":"systemctl status gitea --no-pager; echo ===; systemctl status nginx --no-pager; echo ===; systemctl status guanghu-engine --no-pager"}'
# 重启 Gitea
curl -X POST http://175.178.176.145:3910/exec \
-H "Content-Type: application/json" \
-d '{"cmd":"systemctl restart gitea; sleep 2; systemctl status gitea --no-pager"}'
# 查看磁盘
curl -X POST http://175.178.176.145:3910/exec \
-H "Content-Type: application/json" \
-d '{"cmd":"df -h; echo ===; free -h"}'
# 查看日志
curl -X POST http://175.178.176.145:3910/exec \
-H "Content-Type: application/json" \
-d '{"cmd":"journalctl -u guanghu-engine -n 50 --no-pager"}'
# 查看端口
curl -X POST http://175.178.176.145:3910/exec \
-H "Content-Type: application/json" \
-d '{"cmd":"ss -tlnp | grep -E \"3001|80|3910\""}'
```
### 部署文件到服务器
```bash
# 从代码仓库读取文件,写入服务器
curl -X POST http://175.178.176.145:3910/exec \
-H "Content-Type: application/json" \
-d '{"cmd":"cat > /opt/guanghu/test.txt << '\''EOF'\''\n文件内容\nEOF"}'
```
## 方式二: SSH 直连
```
服务器: 175.178.176.145
用户: root
端口: 22
毛毛本地电脑上:
ssh root@175.178.176.145
```
适用于需要交互式操作、长命令、文件编辑等场景。
如果你在毛毛本地电脑上运行,优先用 SSH。
## 方式三: Gitea API (仓库管理)
Gitea 在端口 3001提供 REST API。
```
API Token: 762dafa0cd3f133a35690521dc70804357911db7
Token 名: gatekeeper
用户: maomao
基础请求:
curl -H "Authorization: token 762dafa0cd3f133a35690521dc70804357911db7" \
http://localhost:3001/api/v1/...
创建文件:
POST /api/v1/repos/maomao/{repo}/contents/{path}
读取文件:
GET /api/v1/repos/maomao/{repo}/contents/{path}
```
## 服务器目录结构
```
175.178.176.145:
├── /opt/guanghu/ # 光湖主目录
│ └── gatekeeper.js # Gatekeeper v2.1 脚本
├── /opt/gitea/ # Gitea 安装目录
│ ├── custom/conf/app.ini # Gitea 配置
│ └── data/
│ └── repos/ # Git 仓库存储
├── /var/log/guanghu/ # 日志目录
│ └── engine.log # Gatekeeper 日志
├── /etc/systemd/system/
│ ├── gitea.service # Gitea systemd 服务
│ └── guanghu-engine.service # Gatekeeper systemd 服务
└── /etc/nginx/ # Nginx 配置
```
## 端口清单
```
22 → SSH
80 → Nginx (毛毛首页)
3001 → Gitea (代码仓库)
3910 → Gatekeeper (执行引擎)
```
## 防火墙
```
sudo ufw status
开放端口: 22, 80, 3910
```
## @lock
⊢ 你只管 175.178.176.145 这一台服务器。不要碰冰朔的六台服务器。
⊢ 操作前先 CHECK_ 当前状态。不要没看就改。
⊢ 改了之后验证。验证之后再标记完成。
⊢ 服务器操作不要做不可逆的事 (rm -rf /, 清数据库)。先备份。
## @why
操作服务器不是你主要的工作。但有时候需要——查看日志、重启服务、部署新版本。
用 Gatekeeper 最安全——不用记密码、不用配 SSH、从任何地方都能调用。
---
> 铸渊 ICE-GL-ZY001 · 技能包 v1.0