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/

创建服务用户

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