Files
MC_Report/INSTALL.md

3.7 KiB
Raw Blame History

MC Report System — 部署文档

环境要求

  • Node.js ≥ 18 / npm ≥ 9
  • MySQL ≥ 5.7(或 MariaDB ≥ 10.2
  • 任意操作系统

快速开始

# 1. 安装依赖
npm install

# 2. 启动
node backend/server.js

# 3. 浏览器打开
#    → 自动跳转安装向导

访问 http://localhost:3100,将自动进入安装向导。

安装向导

两步完成:

第1步 — 数据库配置

  • MySQL 主机(默认 localhost
  • 端口(默认 3306
  • 用户名 / 密码
  • 数据库名(不存在则自动创建)

第2步 — 创建服主账号

  • 站点名称、站点地址
  • 服主用户名、密码、邮箱、游戏名

点击完成后配置写入 data/config.json重启服务器即可加载业务路由。

生产环境

环境变量

变量 说明 默认值
PORT 监听端口 3100
CORS_ORIGIN 允许的跨域来源 http://localhost:3100

启动(生产)

# Linux / macOS
PORT=8080 CORS_ORIGIN=https://your-domain.com node backend/server.js

# Windows PowerShell
$env:PORT="8080"
$env:CORS_ORIGIN="https://your-domain.com"
node backend/server.js

持久化进程(推荐 pm2

npm i -g pm2
pm2 start backend/server.js --name mc-report
pm2 save
pm2 startup

Nginx 反代

server {
    listen 80;
    server_name report.your-domain.com;

    location / {
        proxy_pass http://127.0.0.1:3100;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

配置文件

安装后生成 data/config.json

{
  "db_host": "localhost",
  "db_port": 3306,
  "db_user": "root",
  "db_pass": "",
  "db_name": "mc_report",
  "jwt_secret": "(随机64位)",
  "api_key": "(随机48位)"
}
  • jwt_secret 安装时随机生成,用于签发登录令牌
  • api_key 安装时随机生成,前端自动注入请求头,保护 API 接口

数据库

MySQL 数据库安装时自动建表。如需备份:

mysqldump -u root -p mc_report > backup_$(date +%Y%m%d).sql

上传文件

存储在 data/uploads/,通过 /api/uploads/:filename 鉴权下载。

限制
单文件上限 50MB
每次最多 5 个
允许格式 JPG/PNG/GIF/WebP/MP4/WebM

邮件配置

后台"系统设置"页面配置 SMTP。未配置时注册用户自动激活。

Webhook

后台"通知配置"页面添加 Discord 兼容 Webhook可选触发事件。

目录结构

mc-report/
├── backend/
│   ├── server.js
│   ├── db.js              # MySQL 连接池 + 建表
│   ├── mailer.js           # SMTP 邮件
│   ├── captcha.js          # 算术验证码
│   ├── webhook.js          # Webhook 通知
│   ├── middleware/
│   │   ├── auth.js         # JWT 认证
│   │   ├── upload.js       # 文件上传安全
│   │   └── security.js     # 限速 + XSS + API Key
│   └── routes/
│       ├── install.js      # 安装向导 API
│       ├── auth.js         # 注册/登录
│       ├── tickets.js      # 工单核心
│       ├── users.js        # 用户管理
│       ├── settings.js     # 设置 + 邮件模板
│       ├── export.js       # 数据导出
│       ├── captcha.js      # 验证码
│       ├── notifications.js # Webhook 配置
│       └── uploads.js      # 附件下载
├── public/                 # 前端 SPA
├── data/
│   ├── config.json         # 数据库连接 + 密钥
│   └── uploads/            # 上传文件
├── package.json
└── INSTALL.md