跳至主要内容

自行部署

本文介紹如何在自己的伺服器上部署 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 起連接埠未被防火牆阻擋。