BroadcastChannel
项目主页
https://github.com/ccbikai/BroadcastChannel/
介绍
BroadcastChannel 是一个轻量级工具,能将 Telegram Channel 转换为精美的微博客网站。它利用 Telegram 作为内容管理系统,让你无需复杂的后台操作,直接通过发送 Telegram 消息来更新你的个人网站。
这个方案特别适合希望拥有个人博客但又不想花费大量时间在内容管理系统上的用户。借助 Telegram 强大的媒体支持和编辑功能,你可以轻松发布包含文字、图片、视频和链接的内容,而 BroadcastChannel 会自动将这些内容同步到你的网站上,以时间轴形式展示。
技术原理
BroadcastChannel 的工作流程简洁明了:
- 内容来源:利用 Telegram Channel 作为内容管理系统,所有发布在 Channel 中的消息都会成为网站内容
- 数据获取:通过 Vercel Serverless Functions 或 Cloudflare Workers 访问 Telegram API,获取 Channel 的公开数据
- 内容转换:将 Telegram 消息格式转换为适合网页展示的结构化数据
- 静态生成:使用 Astro 框架的静态站点生成功能,预渲染所有页面,提供极致的访问速度
- 视觉呈现:采用 Sepia 模板,为内容提供优雅、易读的展示界面
这种架构完全基于静态文件,不需要传统的数据库或服务器,可以在任何静态网站托管平台上部署,具有高性能和低维护成本的特点。
部署
BroadcastChannel 的部署过程非常简便:
方法一:Docker 部署
使用 Docker 一行命令即可完成部署:
docker run -d --name broadcastchannel -p 4321:4321 -e CHANNEL=miantiao_me ghcr.io/ccbikai/broadcastchannel:main
部署完成后,可通过 http://your-ip:4321
访问站点。
方法二:Serverless 部署
将项目部署到 Cloudflare、Netlify 或 Vercel 等平台的步骤:
- Fork 此项目到你的 GitHub
- 在 Cloudflare/Netlify/Vercel 创建项目
- 选择 BroadcastChannel 项目和 Astro 框架
- 配置环境变量 CHANNEL 为你的频道名称(此为最小化配置,更多配置见下面的配置项)
- 保存并部署
- 绑定域名(可选)
- 更新代码,参考 GitHub 官方文档从 Web UI 同步分叉分支
使用指南
设置 Telegram Channel
- 创建 Channel:在 Telegram 中创建一个新 Channel(可以是公开或私有的)
- 获取 Channel ID:
- 通过 @username_to_id_bot 机器人获取你的 Channel ID
- 或者从 Channel 的分享链接中提取
- 配置网站:在部署时使用此 ID 作为环境变量
内容发布
一旦部署完成,使用过程极其简单:
- 发布内容:直接在你的 Telegram Channel 中发送消息
- 支持文本、图片、视频、链接和文件
- 可以使用 Telegram 的所有格式化选项(加粗、斜体、代码块等)
- 内容同步:
- 使用 Vercel:内容会在发布后几分钟内自动同步
- 使用 Cloudflare:可以设置 Webhook 触发即时更新
- 管理内容:在 Telegram 中编辑或删除消息,变更会自动同步到网站
实用场景
BroadcastChannel 适用于多种使用场景:
- 个人博客:快速发布日常思考和见解,无需复杂的博客平台
- 项目动态:为开源项目或产品创建一个更新日志页面
- 知识分享:建立个人知识库,分享专业领域的见解和资源
- 团队公告:为小型团队或社区创建简易的公告系统
- 多平台同步:一次发布,多处展示,减少内容管理的重复工作
BroadcastChannel 特别适合那些希望保持内容创作简单性,又不想牺牲网站美观度和用户体验的创作者。
构建示例
使用了公开频道@shareAliyun作为数据源,构建的一个微博客网站: