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

5.0 KiB
Raw Blame History

🚀 贪吃蛇游戏 - 部署文档

部署信息

项目
部署日期 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. 准备文件

# 创建部署目录
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

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. 启用站点

# 创建符号链接
sudo ln -sf /etc/nginx/sites-available/snake-game /etc/nginx/sites-enabled/

# 测试配置
sudo nginx -t

# 重启 Nginx
sudo systemctl restart nginx

4. 验证部署

# 检查 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 年缓存

访问地址

本地访问

外部访问

CI/CD 流程

自动化部署脚本

项目包含一个 deploy.sh 脚本,可以自动化部署流程:

cd /root/.openclaw/workspace/snake-game
sudo ./deploy.sh

Gitea Actions 工作流

.gitea/workflows/ci.yml 配置了自动化 CI/CD 流程:

  • 构建检查: 验证文件完整性
  • 语法检查: JavaScript 语法验证
  • HTML 验证: 结构完整性检查
  • 自动部署: 推送到 main 分支时自动部署

监控和维护

日志查看

# Nginx 访问日志
sudo tail -f /var/log/nginx/access.log

# Nginx 错误日志
sudo tail -f /var/log/nginx/error.log

重启服务

# 重启 Nginx
sudo systemctl restart nginx

# 重新加载配置(不停机)
sudo systemctl reload nginx

更新部署

当代码更新后,执行以下步骤:

# 1. 拉取最新代码
cd /var/www/snake-game
git pull origin main

# 2. 重新加载 Nginx如果有配置变更
sudo systemctl reload nginx

安全建议

  1. HTTPS 配置(生产环境推荐):

    sudo apt install certbot python3-certbot-nginx
    sudo certbot --nginx -d yourdomain.com
    
  2. 防火墙配置

    sudo ufw allow 'Nginx Full'
    
  3. 定期更新

    sudo apt update && sudo apt upgrade
    

故障排查

403 Forbidden

检查文件权限:

sudo chown -R www-data:www-data /var/www/snake-game
sudo chmod -R 755 /var/www/snake-game

502 Bad Gateway

检查 Nginx 配置:

sudo nginx -t
sudo systemctl status nginx

页面不更新

清除浏览器缓存或使用 Ctrl+Shift+R 强制刷新。

总结

部署成功!

贪吃蛇游戏已成功部署到本地 80 端口,可以通过浏览器访问和游玩。整个开发流程包括:

  1. 项目初始化
  2. 游戏核心逻辑开发
  3. UI 界面设计
  4. 交互和优化
  5. CI/CD 配置
  6. 部署上线

部署时间: 约 5 分钟 总开发时间: 约 30 分钟


祝游戏愉快!🎮