自行部署
本文介紹如何在自己的伺服器上部署 SCWebManager,並透過網域安全存取。適用於面板與遊戲伺服器部署在同一台機器,或分開部署的常見情境。
部署方式
| 方式 | 適用情境 |
|---|---|
| 本機使用 | 面板與瀏覽器在同一台機器,預設僅回環存取 |
| 區域網路 | 多台裝置在同一內網,面板開放區域網路存取 |
| 公網反向代理 | 透過 Nginx、Caddy 或 Cloudflare Tunnel 暴露面板 |
| 分離部署 | 面板在一台機器,遊戲伺服器在另一台機器 |
準備
- 一台可執行面板的主機(Windows 或 Linux)。
- 面板發行包。
- 如需網域存取,準備可解析的網域與 TLS 憑證。
- 如需公網存取,建議使用反向代理,不要直接暴露面板連接埠。
安裝面板
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,否則面板只能看到代理位址,可能誤判來源。
在「設定 → 面板設定」中依部署方式選擇:
- 僅回環:僅本機。
- 允許區域網路:本機與內網。
- 允許公網:任意來源,建議僅在反向代理與強密碼下使用。
安全建議
- 使用強密碼,並定期更換。
- 公網存取必須啟用 HTTPS。
- 限制面板連接埠只對可信來源開放。
- 定期備份
config.json、data/與實例目錄。 - 不向一般使用者開放指令執行與檔案寫入類 AI 工具。
- 升級前驗證
SHA256SUMS。
升級與回復
- 停止面板與守護行程。
- 備份設定與資料目錄。
- 替換程式檔案。
- 啟動並驗證實例狀態與外掛連線。
如升級後出現異常,回復舊版本程式檔案與對應設定即可。
資料遷移
遷移到新主機時,複製以下內容:
- 程式安裝目錄中的
config.json。 data/目錄。- 實例目錄與備份目錄。
遷移後如連接埠或路徑發生變化,請在面板設定中更新,並重新啟動實例。
常見部署問題
頁面能開啟但即時資料不更新
檢查反向代理是否關閉緩衝,並確認 X-Forwarded-For 正確傳遞。
登入後提示無權限
確認帳號角色與實例授權。一般使用者預設不能存取全部實例。
實例啟動失敗
檢視實例日誌中的伺服器輸出,並確認工作目錄與程式路徑正確。
外掛未連線
確認外掛 DLL 已載入、實例已重新啟動,且 18235 起連接埠未被防火牆阻擋。