跳到主要内容

自行部署

本文介绍如何在自己的服务器上部署 SCWebManager,并通过域名安全访问。适用于面板与游戏服务端部署在同一台机器,或分开部署的常见场景。

部署方式​

方式适用场景
本机使用面板与浏览器在同一台机器,默认仅回环访问
局域网多台设备在同一内网,面板开放局域网访问
公网反向代理通过 Nginx、Caddy 或 Cloudflare Tunnel 暴露面板
分离部署面板在一台机器,游戏服务端在另一台机器

准备​

  1. 一台可运行面板的主机(Windows 或 Linux)。
  2. 面板发布包。
  3. 如需域名访问,准备可解析的域名与 TLS 证书。
  4. 如需公网访问,建议使用反向代理,不要直接暴露面板端口。

安装面板​

Windows:

powershell -ExecutionPolicy Bypass -File .\install.ps1

Linux:

sudo bash install.sh

安装完成后确认面板进程与守护进程正常运行:

systemctl status scwebmanager

Windows 下可通过服务管理器确认守护进程服务状态。

反向代理​

Nginx​

server {
listen 443 ssl http2;
server_name panel.example.com;

ssl_certificate /etc/nginx/certs/panel.crt;
ssl_certificate_key /etc/nginx/certs/panel.key;

location / {
proxy_pass http://127.0.0.1:18233;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_read_timeout 3600s;
}
}

SSE 实时推送需要关闭响应缓冲。proxy_buffering off 与较长的 proxy_read_timeout 是必要配置。

Caddy​

panel.example.com {
reverse_proxy 127.0.0.1:18233 {
flush_interval -1
}
}

flush_interval -1 用于立即刷新 SSE 数据。

Cloudflare Tunnel​

cloudflared tunnel --url http://127.0.0.1:18233

在 Cloudflare 控制台中为隧道绑定域名即可。面板已针对隧道与 CDN 场景设置 no-transform 与心跳,避免实时数据被缓冲。

访问范围与来源 IP​

面板根据请求来源判断是否放行。经反向代理访问时,请确保代理传递 X-Forwarded-For,否则面板只能看到代理地址,可能误判来源。

在「设置 → 面板设置」中按部署方式选择:

  • 仅回环:仅本机。
  • 允许局域网:本机与内网。
  • 允许公网:任意来源,建议仅在反向代理与强口令下使用。

安全建议​

  1. 使用强密码,并定期更换。
  2. 公网访问必须启用 HTTPS。
  3. 限制面板端口只对可信来源开放。
  4. 定期备份 config.json、data/ 与实例目录。
  5. 不向普通用户开放命令执行与文件写入类 AI 工具。
  6. 升级前校验 SHA256SUMS。

升级与回滚​

  1. 停止面板与守护进程。
  2. 备份配置与数据目录。
  3. 替换程序文件。
  4. 启动并验证实例状态与插件连接。

如升级后出现异常,恢复旧版本程序文件与对应配置即可回滚。

数据迁移​

迁移到新主机时,复制以下内容:

  • 程序安装目录中的 config.json。
  • data/ 目录。
  • 实例目录与备份目录。

迁移后如端口或路径发生变化,请在面板设置中更新,并重启实例。

常见部署问题​

页面能打开但实时数据不更新

检查反向代理是否关闭缓冲,并确认 X-Forwarded-For 正确传递。

登录后提示无权限

确认账号角色与实例授权。普通用户默认不能访问全部实例。

实例启动失败

查看实例日志中的服务端输出,并确认工作目录与程序路径正确。

插件未连接

确认插件 DLL 已加载,实例已重启,且 18235 起端口未被防火墙拦截。