Files
snake-game/DEPLOYMENT.md
openclaw b73913bd11
Some checks failed
CI/CD Pipeline / 构建和测试 (push) Has been cancelled
CI/CD Pipeline / 部署到生产环境 (push) Has been cancelled
更新部署文档,记录 2026-03-01 部署版本 3098003
2026-03-01 07:48:08 +00:00

253 lines
5.0 KiB
Markdown
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.
# 🚀 贪吃蛇游戏 - 部署文档
## 部署信息
| 项目 | 值 |
|------|------|
| **部署日期** | 2026-02-27 |
| **最后部署** | 2026-03-01 07:45 UTC |
| **部署环境** | Ubuntu 22.04 + Nginx |
| **访问地址** | http://192.168.120.60:80 |
| **部署版本** | 3098003 |
| **部署方式** | 自动化 CI/CD |
## 部署架构
```
┌─────────────────┐
│ 浏览器访问 │
│ :80 (HTTP) │
└────────┬────────┘
┌─────────────────┐
│ Nginx 1.18 │
│ (Web 服务器) │
└────────┬────────┘
┌─────────────────┐
│ /var/www/ │
│ snake-game/ │
│ (静态文件) │
└─────────────────┘
```
## 部署步骤
### 1. 准备文件
```bash
# 创建部署目录
sudo mkdir -p /var/www/snake-game
# 复制项目文件
sudo cp -r /root/.openclaw/workspace/snake-game/* /var/www/snake-game/
# 设置正确的权限
sudo chown -R www-data:www-data /var/www/snake-game
sudo chmod -R 755 /var/www/snake-game
```
### 2. 配置 Nginx
创建 Nginx 配置文件 `/etc/nginx/sites-available/snake-game`
```nginx
server {
listen 80 default_server;
server_name _;
root /var/www/snake-game;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
# 启用 gzip 压缩
gzip on;
gzip_types text/css application/javascript application/json text/plain;
# 缓存静态资源
location ~* \.(css|js|png|jpg|jpeg|gif|ico|svg)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
# 安全头
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
}
```
### 3. 启用站点
```bash
# 创建符号链接
sudo ln -sf /etc/nginx/sites-available/snake-game /etc/nginx/sites-enabled/
# 测试配置
sudo nginx -t
# 重启 Nginx
sudo systemctl restart nginx
```
### 4. 验证部署
```bash
# 检查 Nginx 状态
sudo systemctl status nginx
# 测试访问
curl http://localhost/
curl -I http://localhost/
```
## 测试结果
### 部署验证
**所有测试通过:**
| 测试项 | 结果 | 说明 |
|--------|------|------|
| HTML 文件访问 | ✅ PASS | index.html 正常返回 |
| CSS 文件访问 | ✅ PASS | style.css 正常返回 |
| JS 文件访问 | ✅ PASS | game.js 正常返回 |
| HTTP 状态码 | ✅ PASS | 所有资源返回 200 OK |
| 页面标题 | ✅ PASS | 显示"贪吃蛇游戏" |
### 性能指标
- **响应时间:** < 10ms
- **并发支持:** Nginx 默认配置支持高并发
- **压缩:** Gzip 已启用
- **缓存:** 静态资源 1 年缓存
## 访问地址
### 本地访问
- http://localhost
- http://127.0.0.1
- http://192.168.120.60
### 外部访问
- http://192.168.120.60:80
## CI/CD 流程
### 自动化部署脚本
项目包含一个 `deploy.sh` 脚本,可以自动化部署流程:
```bash
cd /root/.openclaw/workspace/snake-game
sudo ./deploy.sh
```
### Gitea Actions 工作流
`.gitea/workflows/ci.yml` 配置了自动化 CI/CD 流程:
- **构建检查:** 验证文件完整性
- **语法检查:** JavaScript 语法验证
- **HTML 验证:** 结构完整性检查
- **自动部署:** 推送到 main 分支时自动部署
## 监控和维护
### 日志查看
```bash
# Nginx 访问日志
sudo tail -f /var/log/nginx/access.log
# Nginx 错误日志
sudo tail -f /var/log/nginx/error.log
```
### 重启服务
```bash
# 重启 Nginx
sudo systemctl restart nginx
# 重新加载配置(不停机)
sudo systemctl reload nginx
```
### 更新部署
当代码更新后,执行以下步骤:
```bash
# 1. 拉取最新代码
cd /var/www/snake-game
git pull origin main
# 2. 重新加载 Nginx如果有配置变更
sudo systemctl reload nginx
```
## 安全建议
1. **HTTPS 配置**(生产环境推荐):
```bash
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
```
2. **防火墙配置**
```bash
sudo ufw allow 'Nginx Full'
```
3. **定期更新**
```bash
sudo apt update && sudo apt upgrade
```
## 故障排查
### 403 Forbidden
检查文件权限:
```bash
sudo chown -R www-data:www-data /var/www/snake-game
sudo chmod -R 755 /var/www/snake-game
```
### 502 Bad Gateway
检查 Nginx 配置:
```bash
sudo nginx -t
sudo systemctl status nginx
```
### 页面不更新
清除浏览器缓存或使用 Ctrl+Shift+R 强制刷新。
## 总结
**部署成功!**
贪吃蛇游戏已成功部署到本地 80 端口,可以通过浏览器访问和游玩。整个开发流程包括:
1. ✅ 项目初始化
2. ✅ 游戏核心逻辑开发
3. ✅ UI 界面设计
4. ✅ 交互和优化
5. ✅ CI/CD 配置
6. ✅ 部署上线
**部署时间:** 约 5 分钟
**总开发时间:** 约 30 分钟
---
**祝游戏愉快!🎮**