CSUBOT 是一個開源的超級管理員機器人。
本文介紹如何自行部署 CSUBOT 。
請先完整閱讀這個文檔: CSUBOT 機器人使用說明書
推薦: 查詢本機訪問不同網站的公網 IP ,用於檢查當前網路環境。
前提條件
自行部署 CSUBOT ,需要至少滿足如下條件:
- 持有網域名稱。 (至少持有一個二級網域名稱,用於後端。實際前端和後端一共需要兩個二級網域名稱,但一般前端網域名稱可以由部署的平台提供)
- 持有一個伺服器。或者部署在可以部署後端服務的平台上。如果您知道一個免費的,可以部署後端服務的平台,請不要猶豫, 點擊這裡,發布評論告訴作者 。
- 持有沒有被限制的 Telegram 帳戶,用於創建 Telegram 機器人,並且獲取機器人的 Token
- 持有沒有被限制的 Cloudflare 帳戶,用於啟用 Cloudflare Turnstile 驗證碼。註冊帳戶: https://dash.cloudflare.com/
操作步驟
- 啟用 Cloudflare Turnstile
- 部署前端
- 創建 Telegram 機器人
- 配置後端
啟用 Cloudflare Turnstile
點擊這個連結,打開 Cloudflare Turnstile 配置面板 Turnstile 組件配置
點擊 add widget,新增一個 Turnstile 部件
點擊 Add Hostnames ,新增前端的網域名稱。如果您打算使用前端託管平台提供的網域名稱,這裡可以隨便寫。
點擊創建按鈕,然後就可以看到 Site Key 和 Secret Key
部署前端
我們以部署到前端託管平台為例。
- 打開 https://github.com/cjh0613/csubot-vue , fork 這個倉庫
- 選擇部署的平台,如 Cloudflare Pages, Vercel, Netlify 等都可以。
- 選擇由 Github 倉庫導入,選擇第一步中 fork 的倉庫。
工作路徑配置為專案根目錄,編譯命令是:
npm install && npm run build
輸出的目錄是:
dist/
配置環境變數:
VITE_ENDPOINT=https://xxxx.com <後端 URL,需要https>
VITE_SITEKEY=0x4AAAAAABBBBBBBBBBB <Cloudflare turnstile 的站點金鑰 Site Key (位置靠上的那個)>
- 開始部署,完成之後就可以看到平台提供網域名稱。您也可以綁定自己的網域名稱。需要等待 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 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