Hugo博客公告弹窗

使用电报管理你的Cloudflare DNS

项目地址

https://github.com/zcp1997/telegram-cf-dns-bot

一键脚本

curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/cf-dns-bot.sh && chmod +x cf-dns-bot.sh && ./cf-dns-bot.sh

快速开始

前置要求

Docker 和 Docker Compose

Telegram Bot Token(从 @BotFather 获取)

Cloudflare API Token(从 Cloudflare 控制面板获取)

域名的 Zone ID(从 Cloudflare 控制面板获取)

通过 @userinfobot 获取您的Telegram 用户 ID

部署方式

以下为手动,可以使用脚本快速部署

  1. 创建 docker-compose.yml 文件:
services:
  tg-cf-dns-bot:
    image: ghcr.io/zcp1997/telegram-cf-dns-bot:latest
    container_name: tg-cf-dns-bot
    restart: unless-stopped
    environment:
      # Telegram Bot Token
      - TELEGRAM_TOKEN=your_telegram_token_here
      # Cloudflare API Token
      - CF_API_TOKEN=your_api_token_here
      # 允许访问的 Telegram 用户 ID(逗号分隔),第一个用户是管理员
      - ALLOWED_CHAT_IDS=123456789,987654321
      # 域名到 Zone ID 的映射(JSON 格式)
      - 'DOMAIN_ZONE_MAP=
        {
          "example.com": "zone_id_1",
          "example.org": "zone_id_2",
          "another-domain.com": "zone_id_3"
        }'

小贴士

你可以通过这个curl命令快速得到托管的 DOMAIN_ZONE_MAP 配置

curl -s -X GET "https://api.cloudflare.com/client/v4/zones" \
     -H "Authorization: Bearer YOUR_API_TOKEN" \
     -H "Content-Type: application/json" | \
jq '[.result[] | {key: .name, value: .id}] | from_entries'
  1. 编辑 docker-compose.yml 文件,填入必要的配置信息:

    • 替换 your_telegram_token_here 为您的 Telegram Bot Token
    • 替换 your_api_token_here 为您的 Cloudflare API Token
    • 替换 ALLOWED_CHAT_IDS 中的用户ID为您允许访问的用户ID
    • DOMAIN_ZONE_MAP 中配置您的域名和对应的 Zone ID
  2. 启动服务:

docker compose up -d
  1. 查看日志:
docker compose logs -f
CC BY-NC-SA 4.0 转载请注明
最后更新于 2025-03-27 03:42
clarity统计