Home Admin

microfeed

Edit
· json · rss
Subscribe:

About



Microfeed:Cloudflare 上的轻量级 CMS 自托管


报告错误 ·请求功能 ·私下给我们发电子邮件

欢迎使用 microfeed,这是一个在 Cloudflare 上自托管的轻量级内容管理系统 (CMS)。 使用微源,您可以轻松发布各种内容,例如音频、视频、照片、文档、博客文章、 以及 Web、RSS 和 JSON 形式的源的外部 URL。对于精通技术的个人来说,这是一个完美的解决方案: 想要自行托管自己的 CMS,而无需运行自己的服务器。

microfeed 由 Listen Notes 构建,托管在 Cloudflare 的 PagesR2D1 和 Zero Trust 上。

如果您有任何问题或反馈,请随时通过 [email protected] 与我们联系。我们很乐意听取您的意见!

📚 目录


   

⭐️ 运作方式


自 1990 年代以来,网络的很大一部分都是由提要驱动的。 人员(和机器人)将项目发布到源,其他人可以订阅该源以接收新内容。

微提要使个人可以轻松地在 Cloudflare 上自行托管自己的提要,包括但不限于

microfeed 使用 Cloudflare Pages 托管和运行代码,R2 托管和提供媒体文件,D1 存储元数据,和 Zero Trust 提供对管理仪表板的登录信息。Cloudflare 提供非常慷慨的免费使用配额,使其成为个人或小型企业使用的经济实惠的解决方案。虽然您仍然需要为域名付费,但在 Cloudflare 上托管微源基本上是免费的。

使用微源,您可以发布各种内容,例如音频、视频、照片、文档、博客文章、 以及可自定义网站、RSS 提要和 JSON 提要的外部 URL。 查看微进料的一些实际示例:

Microfeed 提供了一个简单而强大的管理仪表板,可以轻松地将项目添加到 Feed, 上传媒体文件,并自定义网页样式。如果您以前使用过 WordPress,您会发现它很熟悉。

返回📚目录

🚀 安装


大致上,您将按照以下步骤将微源实例安装到 Cloudflare:

  1. 微源存储库分支到个人(或组织)GitHub 帐户。
  2. 获取 Cloudflare API 令牌,并将其作为机密保存在分叉的 GitHub 存储库中。
  3. 使用分支存储库中的预定义 GitHub Action,使用步骤 2 中的密钥将代码部署到 Cloudflare Pages。
  4. 在 Cloudflare 的仪表板上单击几下即可设置自定义域并配置一些安全设置。
  5. 做。开始发布!
我们知道并不是每个人都喜欢阅读文档,因此我们尽可能简单地阅读文档 开始使用 Microfeed。但是,我们希望看到 Cloudflare 实现“使用 Cloudflare 登录”OAuth 功能, 这将允许几乎一键部署微进纸。与此同时,我们尝试进行设置过程 对于精通技术的用户来说,尽可能简单。

先决条件


返回目录

步骤 1.将微源存储库分叉到 GitHub


只需单击 https://github.com/microfeed/microfeed/fork 即可分叉存储库。

将来可以选择修改分叉存储库中的代码,但可能不需要修改 完全触摸代码。只需分叉存储库并保持同步以备将来使用。

返回📚目录

步骤 2.在分叉的存储库上放一些秘密


转到分叉存储库的设置 -> 密钥 ->作,并创建 5 个密钥(点击了解更多详细信息)。 有了这些密钥,您就可以使用 GitHub Actions 将微源实例部署到 Cloudflare Pages。

CLOUDFLARE_ACCOUNT_ID

您可以从仪表板的 URL 获取您的 cloudflare 帐户 ID:

登录 Cloudflare 帐户后,您将被重定向到如下 URL

https://dash.cloudflare.com/[your-cloudflare-account-id-here]


URL 的最后一部分是您的 cloudflare 帐户 ID。

例如,如果您看到如下网址:

https://dash.cloudflare.com/fff88980eeeeedcc3ffffd4f555f4999


然后,您将CLOUDFLARE_ACCOUNT_ID设置为 fff88980eeeeedcc3ffffd4f555f4999:

CLOUDFLARE_API_TOKEN

您需要在此处创建一个 API 令牌:https://dash.cloudflare.com/profile/api-tokens

创建自定义令牌:

我们需要 Cloudflare Pages 和 D1 的编辑权限:

最后,将 API 令牌复制到此处:

R2_ACCESS_KEY_ID和R2_SECRET_ACCESS_KEY

转到您的 R2 仪表板页面。您可能需要先将信用卡放在那里。除非您的使用量超过非常慷慨的免费配额限制(即 10GB 存储 + 1000 万次读取/月 + 100 万次写入/月),否则您无需付费。

在此处创建 R2 API 令牌:

选择“管理员读写”权限并创建 API 令牌:

复制R2_ACCESS_KEY_ID的访问密钥 ID,复制R2_SECRET_ACCESS_KEY的密钥

CLOUDFLARE_PROJECT_NAME

合法的项目名称应包含以下字符:[a-z]、[A-Z]、[0-9] 和 -

我们建议使用您将用于此项目的自定义域名,并将点 (.) 替换为短划线 (-)

例如,如果您使用 photos.mycustomdomain.com,则项目名称应为 photos-mycustomdomain-com

注意:请勿在 [a-z]、[A-Z]、[0-9] 和 - 之外使用下划线 (_)、空格 ( ) 和其他字符。或者 Cloudflare Pages 不允许您创建项目。

总共需要为 GitHub Actions 添加 5 个机密:

返回📚目录

步骤 3.运行 GitHub Action 以部署代码


转到 Actions -> Deploy to Cloudflare Pages 并运行 Workflow

如果看到绿色复选标记,则部署成功。您可以在 Cloudflare 仪表板中看到一个 Pages 项目:

您可以通过 ${CLOUDFLARE_PROJECT_NAME}.pages.dev 访问该站点,例如 https://microfeed-org.pages.dev/

返回📚目录

步骤 4.在 Cloudflare 仪表板上点击几下


要管理您的微源实例,您将使用 ${CLOUDFLARE_PROJECT_NAME}.pages.dev/admin 的管理仪表板,例如 https://microfeed-org.pages.dev/admin/(管理仪表板需要受 Cloudflare Zero Trust 保护)。

首次访问管理仪表板时,您将按照清单完成设置过程:

返回📚目录

步骤 5.做。开始发布


完成设置过程后,您的微馈送实例就可以使用了。 您可以从管理仪表板添加、更新或删除项目。

您还可以在设置/自定义代码中通过编辑原始 HTML 和 CSS 来自定义网站的外观:

HTML 代码使用 mustache.js 作为模板语言,您可以在其中访问 Feed Json 或 Item Json 中的变量。例如,在我们的营销网站 microfeed.org 的主页 (Feed Web) 上,我们使用 microfeed.org/json/ 的 html 代码中的变量,而在商品的页面 (Item Web) 上,我们使用 ${item_url}/json 中的变量。

通过轻松访问微源实例的 json 数据(即 Feed Json 和 Item Json),您可以将其用作无头 CMS 并构建自己的客户端应用程序来显示内容。

返回📚目录

奖金。更新到最新版本的微进纸


我们将继续在此微源存储库中添加新功能并修复错误。 您可能希望使用新代码更新分叉存储库。

首先,在分叉的存储库中同步代码:

然后转到 Actions -> Deploy to Cloudflare Pages 并运行 Workflow 以部署新代码。

返回📚目录

💻 常见问题


如何跟踪播客/视频/图像下载?

要使用微提要跟踪播客、视频或图像下载,您可以使用跟踪 URL 功能。 这允许您为媒体文件设置第三方跟踪 URL,例如 OP3Podtrac 提供的 URL...

要设置跟踪 URL,您需要转到设置/跟踪 URL:

从那里,您可以添加要使用的第三方跟踪 URL。microfeed 会自动将这些 URL 添加到媒体文件的 URL 前面,以便您跟踪下载统计信息。

这是播客行业的常见做法,可以成为监控内容表现并了解受众如何消费内容的有用方法。

为什么选择 Cloudflare?相信一家营利性公司不是很危险吗?

许多个人和组织信任并使用 Cloudflare 的服务,因为它在提供可靠和有效的服务方面享有盛誉。 我们(Listen Notes)多年来一直在使用 Cloudflare。

在像 Cloudflare 这样的一站式平台上管理所有事情非常方便(例如 DNS、缓存、防火墙、运行代码、CDN、无需信任的登录......

微进纸仍处于开放 alpha 阶段。Cloudflare 是我们支持的第一个平台。 我们可能会考虑支持其他无服务器平台,以便您可以在需要时轻松迁移离开。

如果 Cloudflare 取消了我的 microfeed 实例的平台怎么办?

请务必仔细查看您使用的任何服务(包括 Cloudflare)的服务条款。 如果您违反服务条款,服务可能会采取行动,例如将您的实例去平台化。

为了防止被去平台化的可能性,最好定期从 Cloudflare 备份您的数据。 这将允许您恢复内容,并在必要时将它们迁移到其他平台。 使用您自己的自定义域也是一个好主意,因为这将使您能够更好地控制您的内容,并在需要时更轻松地将数据移动到不同的平台。

为什么要使用微进纸?

如果您已经在使用 Cloudflare 并且对其服务感到满意,那么使用 microfeed 可能是您的不错选择。

如果您不想管理自己的服务器,微源可能是一个方便的替代方案,可以让您利用 Cloudflare 的基础设施和安全功能。

如果您不想为服务器付费,microfeed 可能是一种经济高效的解决方案,因为 Cloudflare 提供了慷慨的免费使用配额。

如果您正在寻找新的东西并且有兴趣探索不同的选择,微馈送可能是一个不错的选择。在使用任何服务之前仔细评估它总是一个好主意,以确保它满足您的需求并且非常适合您的用例。

如何从 microfeed / Cloudflare 下载/备份数据?

microfeed 将数据存储在 Cloudflare D1 和 R2 中。因此,您将下载两个内容来备份您的微源数据:

  • 来自 Cloudflare D1 的 sqlite 数据库,包括所有元数据。
  • 来自 Cloudflare R2 的媒体文件,包括音频、图像、视频......

如何从 D1 下载 sqlite 数据库?

您可以使用命令行工具查找 sqlite 数据库文件并下载备份:wrangler

https://developers.cloudflare.com/workers/wrangler/commands/#d1

如何从 R2 下载媒体文件?

截至 2023 年 2 月 16 日,Cloudflare 尚未提供从 R2 存储桶批量下载所有文件的工具。

您可能需要编写脚本以使用与 S3 兼容的 API 从特定 R2 存储桶中获取所有对象。

返回📚目录

💪 贡献


我们欢迎对 microfeed 做出贡献!如果你对新功能有想法或发现错误,请在存储库中打开一个问题。如果你想提交修复或新功能,请创建一个拉取请求,其中包含你的更改的详细描述。

在本地运行微源


先决条件:节点/npm、yarn 和 wrangler

首先,在 microfeed 的根目录(与此 README.md 文件同一级别)创建一个 .vars.toml 文件,并将 5 个密钥放入 .vars.toml 文件中(类似于步骤 2。将一些密钥放在你的分叉存储库中):

# .vars.toml
CLOUDFLARE_PROJECT_NAME = "your-project-org"
CLOUDFLARE_ACCOUNT_ID = "account id"
CLOUDFLARE_API_TOKEN = 'api token'
R2_ACCESS_KEY_ID = "access key"
R2_SECRET_ACCESS_KEY = "secret key"

R2_PUBLIC_BUCKET = "your-r2-bucket-name"


其次,运行本地开发服务器:

yarn dev


您应该能够通过 http://127.0.0.1:8788/ 访问本地微馈送实例。

yarn dev 是如何工作的?本质上,它同时运行两个进程:和 。该进程启动用于客户端 JavaScript 代码的 webpack DevServer,同时启动 Wrangler 来提供 Pages(边缘)代码。yarn dev:clientyarn dev:edgeyarn dev:clientyarn dev:edge

返回📚目录

🛡️ 许可证


microfeed 根据 AGPL-3.0 许可证获得许可。有关更多信息,请参阅 LICENSE 文件

返回📚目录

大约

Cloudflare 上自托管的轻量级 CMS,用于播客、博客、照片、视频、文档和精选 URL。


www.microfeed.org/

主题

CMS系统 无服务器 Cloudflare 云耀斑页面 Cloudflare-R2 的 Cloudflare-零信任 Cloudflare-D1 播客主持人

资源


自述文件

许可证



AGPL-3.0 许可证




 活动


 自定义属性

星星



 3.8k 星

观察家



 26 观看



 1.3k 叉子

报告存储库

释放6


0.1.5版

最近的

on Mar 15

+ 5 个版本

贡献

8

语言


Footer


© 2025 GitHub, Inc.

Footer navigation