bubo-rss

georgemandisMIT更新放缓

极简的静态 RSS/Atom/JSON 订阅阅读器,无需后端,一键部署到 Netlify、Glitch 或自有服务器,适合想要轻量自托管阅读体验的人。

An irrationally minimalist, static feed reader (RSS, Atom, JSON) you can instantly deploy on Netlify, Glitch or your own server.

v2.0.2发布于 2023-06-03 19:36 UTC236star54fork同步于 2026-11-07 07:33 UTC

怎么上手

由 README 提炼,执行前请确认
npm install
npm run build:bubo
硬件要求按 README 说明

README 未说明,仅需能运行 Node.js 与 npm 的环境,无需 GPU

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

极简静态 RSS/Atom/JSON 订阅阅读器,抓取订阅源后生成静态网页,可一键部署到 Netlify 或自有服务器

极简的静态 RSS/Atom/JSON 订阅阅读器,无需后端,一键部署到 Netlify、Glitch 或自有服务器,适合想要轻量自托管阅读体验的人。

核心能力

  • 按分类和网站组织订阅源,生成链接列表页面
  • 支持 RSS、Atom、JSON 三种订阅格式
  • 用 Nunjucks 模板自定义页面渲染
  • 可配置 MAX_CONNECTIONS 与 DELAY_MS 分批限流抓取
  • 构建产物为 public 目录下的纯静态页面

容易踩的坑

运行前需先编辑 conf/feeds.json 填入自己的订阅源;默认不启用分批与限流(MAX_CONNECTIONS 为 Infinity);部署到 Netlify 后需另配 Build Hook 或 cron 定时触发重建才能更新内容

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

4 个版本v2.0.2
  1. v2.0.2最新正式版2023-06-03 · 2023-06-03 19:36 UTC
    • Fixed a bug that could cause Bubo to hang if it failed to fetch one of your feeds
    • Updated packages to latest versions
  2. v2.0.12021-12-05 · 2021-12-05 21:40 UTC
    查看更新说明
    • Now using feed URL as title for fallback if title is empty (opinionated change based on looking at some feeds I subscribe to)
    • Updated package.json license + other info
    • Added Bubo version to renderer variables to more easily report what version of Bubo is running at https://bubo-rss-demo.netlify.app/ without tweaking the template every time
    • Changed console reporting to show total number of feeds fetched over time + how many errored out
    • Fixed formatting (will add .prettierrc or some such thing soon)
  3. v2.0.02021-11-29 · 2021-11-29 08:47 UTC
    查看更新说明

    Migrating Bubo to TypeScript

  4. v1.0.22021-11-15 · 2021-11-15 04:07 UTC
    查看更新说明

    This patch fixes issues in v1.0.0 with parsing certain JSON feeds that had a different mime-type (application/feed+json) and alternative properties for URLs (home_page_url). It also handles items without a title field more gracefully by displaying the URL as the title in the template.

    This patch also adds an nvmrc file to specify Node 16+ as that's the version Bubo Reader was developed on. The optional-chaining operator was introduced and broke the script in earlier versions of Node (< 14).

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Netlify Status

    🦉 Bubo Reader

    Bubo Reader is a hyper-minimalist feed reader (RSS, Atom, JSON) you can deploy on your own server or Netlify in a few steps. The goal of the project is to generate a webpage that shows a list of links from a collection of feeds organized by category and website. That's it.

    It is named after this silly robot owl from Clash of the Titans (1981).

    You can read more about this project on my blog:

    Get Started

    • Clone or fork the repo and run npm install to install the dependencies.
    • Update feeds.json to include categories and links to feeds you would like to see.
    • Run npm run build:bubo

    That's it! You should now have a static page with links to the latest content from your feeds in the public folder, ready to serve.

    The static pieces:

    • conf/feeds.json - a JSON file containing your feed URLS separated into categories.
    • config/template.html - a Nunjucks template that lets you change how the feeds are displayed. This can be changed to anything else you like— see below.
    • public/style.css - a CSS file to stylize your feed output.
    • public/index.html - The HTML file that gets automatically generated when Bubo is run.

    The engine:

    • src/index.ts - The primary script you run when you want to build a new version of Bubo. It will automatically fetch the latest content from your feeds and build a new static file at public/index.html.
    • src/renderer.ts — The renderer that loads Nunjucks, the template and understands how to process the incoming feed data. Prefer something else? This is the place to change it!
    • src/utilities.ts — A variety of parsing and normalization utilities for Bubo, hidden away to try and keep things clean.

    In the main index.ts file you will find two values that allow you to batch and throttle your feed requests:

    • MAX_CONNECTIONS dictates the maximum number of requests a batch can have going at once.
    • DELAY_MS dictates the amount of delay time between each batch.

    The default configuration is no batching or throttling because MAX_CONNECTIONS is set to Infinity. If you wanted to change Bubo to only fetch one feed at a time every second you could set these values to:

    const MAX_CONNECTIONS = 1;
    const DELAY_MS = 1000;
    

    If you wanted to limit things to 10 simultaneous requests every 2.5 seconds you could set it like so:

    const MAX_CONNECTIONS = 10;
    const DELAY_MS = 2500;
    

    In practice, I've never really run into an issue leaving MAX_CONNECTIONS set to Infinity but this feels like a sensible safeguard to design.

    Deploying to Netlify

    The deploy settings should automatically import from the netlify.toml file. All you'll need to do is confirm and you're ready to go!

    Keeping Feeds Updated

    Using Netlify Webhooks

    To keep your feeds up to date you'll want to setup a Build Hook for your Netlify site and use another service to ping it every so often to trigger a rebuild. I'd suggest looking into:

    Rolling Your Own

    If you already have a server running Linux and some command-line experience it might be simpler to setup a cron job.

    Demos

    You can view live demos here:

    Support

    If you found this useful please consider sponsoring me or this project.

    If you'd rather run this on your own server please consider using one of these affiliate links to setup a micro instance on Linode, Digital Ocean or Vultr.

    Showcase

    Here are some websites using Bubo Reader:

    Please share if you would like to be featured!