CSUBOT 是一個開源的超級管理員機器人。

本文介紹如何自行部署 CSUBOT 。

請先完整閱讀這個文檔: CSUBOT 機器人使用說明書

推薦: 查詢本機訪問不同網站的公網 IP ,用於檢查當前網路環境。

前提條件

自行部署 CSUBOT ,需要至少滿足如下條件:

  • 持有網域名稱。 (至少持有一個二級網域名稱,用於後端。實際前端和後端一共需要兩個二級網域名稱,但一般前端網域名稱可以由部署的平台提供)
  • 持有一個伺服器。或者部署在可以部署後端服務的平台上。如果您知道一個免費的,可以部署後端服務的平台,請不要猶豫, 點擊這裡,發布評論告訴作者
  • 持有沒有被限制的 Telegram 帳戶,用於創建 Telegram 機器人,並且獲取機器人的 Token
  • 持有沒有被限制的 Cloudflare 帳戶,用於啟用 Cloudflare Turnstile 驗證碼。註冊帳戶: https://dash.cloudflare.com/

操作步驟

  1. 啟用 Cloudflare Turnstile
  2. 部署前端
  3. 創建 Telegram 機器人
  4. 配置後端

啟用 Cloudflare Turnstile

點擊這個連結,打開 Cloudflare Turnstile 配置面板 Turnstile 組件配置

點擊 add widget,新增一個 Turnstile 部件

點擊 Add Hostnames ,新增前端的網域名稱。如果您打算使用前端託管平台提供的網域名稱,這裡可以隨便寫。

點擊創建按鈕,然後就可以看到 Site Key 和 Secret Key

部署前端

我們以部署到前端託管平台為例。

  1. 打開 https://github.com/cjh0613/csubot-vue , fork 這個倉庫
  2. 選擇部署的平台,如 Cloudflare Pages, Vercel, Netlify 等都可以。
  3. 選擇由 Github 倉庫導入,選擇第一步中 fork 的倉庫。

工作路徑配置為專案根目錄,編譯命令是:

npm install && npm run build

輸出的目錄是:

dist/

配置環境變數:

VITE_ENDPOINT=https://xxxx.com <後端 URL,需要https>

VITE_SITEKEY=0x4AAAAAABBBBBBBBBBB <Cloudflare turnstile 的站點金鑰 Site Key (位置靠上的那個)>
  1. 開始部署,完成之後就可以看到平台提供網域名稱。您也可以綁定自己的網域名稱。需要等待 DNS 配置和憑證生成。

創建 Telegram 機器人

私聊 https://t.me/BotFather ,傳送 /newbot ,根據機器人的提示創建新機器人,創建完成之後,您會收到一個 Token

配置後端

您可以選擇直接執行二進位執行檔,或者自行編譯。

環境變數參考

TGWD_TOKEN=<Telegram 機器人的 token , @botfather 處獲取>
TGWD_FRONTEND_DOMAIN=<前端網域名稱,不需要https>
TGWD_SECRET=<隨便填>
TGWD_PORT=8000
TGWD_CFTS_API_KEY=<Cloudflare turnstile 的 Secret Key 密鑰(站點金鑰下面的那個)>

使用二進位執行檔

我們以 linux amd64 作業系統為例。

首先創建一個新的資料夾。

mkdir csubot && cd csubot

下載二進位執行檔。這裡的下載連結,請打開 https://github.com/cjh0613/csubot/releases 獲取最新的連結,可能需要點擊 Show all assets ,才能找到適合您的平台的文件。

wget https://github.com/cjh0613/csubot/releases/download/vxxx/csubot-linux-amd64.zip

因為是 zip 格式的壓縮包,解壓縮:

unzip csubot-linux-amd64.zip

如果無法執行這個命令,請確認成功安裝 unzip 包。

進入 csubot 所在目錄,

使用以下命令,可以查看到隱藏的 .env.example 文件。

ls -la

使用您的文字編輯器(如 nano, vim ),創建一個新的文件 .env ,參考示例文件 .env.example 進行配置。

嘗試執行:

export $(grep -v '^#' .env | xargs) && ./csubot

自行編譯

在專案根目錄執行命令:

go build -o csubot

嘗試執行:

export $(grep -v '^#' .env | xargs) && ./csubot

HTTPS

後端並未直接提供 https 的支援,僅可 http 訪問。

您可以使用 Apache, Nginx, Microsoft Internet Information Services (IIS) 等服務配置 HTTPS 。

如果您使用 Cloudflare CDN ,也可以在 SSL/TLS encryption 將 encryption mode 設置為 Flexible 。這樣使用者訪問 Cloudflare 伺服器是使用的 Cloudflare 自動配置的 https 協定,然後 Cloudflare 訪問您配置後端服務的伺服器是採用的 http 協定。

以 systemd 服務執行

sudo mkdir /usr/local/bin/csubot/
sudo cp .env /usr/local/bin/csubot/.env
sudo cp csubot /usr/local/bin/csubot/csubot
sudo cp -r ./locales /usr/local/bin/csubot/locales

創建服務使用者

sudo useradd --system --no-create-home --shell /sbin/nologin csubotuser

配置權限

sudo chown csubotuser:csubotuser /usr/local/bin/csubot/csubot
sudo setfacl -R -m u:csubotuser:r /usr/local/bin/csubot
sudo chmod +x /usr/local/bin/csubot/csubot

創建並編輯 /etc/systemd/system/csubot.service ,寫入

[Unit]
Description=CSUBOT Backend
After=network-online.target
Wants=network-online.target

[Install]
WantedBy=multi-user.target

[Service]
Type=simple
User=csubotuser
Group=csubotuser
ExecStart=/usr/local/bin/csubot/csubot
WorkingDirectory=/usr/local/bin/csubot
RestartSec=10s
Restart=always
# Restart=on-failure

# 加載環境變數文件
EnvironmentFile=/usr/local/bin/csubot/.env
# 啟動服務
sudo systemctl start csubot.service

# 查看執行狀態
sudo systemctl status csubot.service

# 設置開機啟動
sudo systemctl enable csubot.service

本網頁的其他版本

本文章有多種語言的版本。

如果您想發表評論,請訪問以下網頁:

ZH EN ZH-TW JA

這些網頁僅支援瀏覽,無法發表評論或留言,但提供了更多語言選項,並且載入時間更短:

ZH EN ZH-TW JA RU KO CS ES AR FR PT DE TR IT NL SV DA FI PL UK HE RO HU EL HR TH HI BN ID SW VI NO