Skip to content
On this page

自建指南

所需

  • 一个域名
  • 一台可访问 Telegram 的服务器
  • Linux 基础知识

创建 Telegrram Bot

点击 @BotFather,按步骤创建自己的 Bot 并获取 Token

创建 sqlite3 数据库

进入存放数据库文件的目录

bash
cd /opt

创建名为 pushbot.db 的数据库

bash
sqlite3 pushbot.db

创建数据库表

bash
sqlite> CREATE TABLE users (chatId int unique, chatToken text unique);

退出数据库命令行

bash
sqlite> .quit

使用 Docker 部署

需要替换 <TOKEN><DOMAIN> 的内容,以及数据库的路径。

docker-compose

yaml
version: '3.7'
services:
  pushbot:
    image: pupilcc/pushbot
    container_name: pushbot
    restart: unless-stopped
    volumes:
      # 创建好的数据库路径
      - /opt/pushbot.db:/app/pushbot/pushbot.db
    ports:
      - "25701:25701"
    environment:
      # Bot Token
      - BOT_TOKEN=<TOKEN>
      # 自己的域名
      - BOT_DOMAIN=<DOMAIN>

docker run

bash
docker run -d \
    --name pushbot \
    --restart unless-stopped \
    -p 25701:25701 \
    -e BOT_TOKEN=<TOKEN> \
    -e BOT_DOMAIN=<DOMAIN> \
    -v /opt/pushbot.db:/app/pushbot/pushbot.db \
    pupilcc/pushbot

使用 Nginx 反向代理

在域名对应的 nginx 配置文件 443 端口处添加反向代理

# 反向代理 Docker 指定端口
location / {
    proxy_pass         http://127.0.0.1:25701;
    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
}

设置 WebHook

请将以下链接中的 {botToken} 替换为 Bot Token,{domian} 替换为自己设置的域名,替换好后在浏览器访问该链接。

https://api.telegram.org/bot{botToken}/setWebhook?url={domain}/webhook/{botToken}

提示如下信息,则代表设置成功,即可尽情享用。

json
{
  "ok": true,
  "result": true,
  "description": "Webhook was set"
}