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/
创建服务用户
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