djibe / html2rss-web

πŸ•Έ Builds and serves RSS feeds via HTTP. Generate your own feeds or start instantly with the included configs.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

html2rss logo

html2rss-web Build Status mergify-status

This is a small web application to deliver RSS feeds built by html2rss via HTTP.

Features:

  • serves your own feeds: set up your feed configs in a YAML file. See html2rss' README for documentation.
  • comes with all html2rss-configs included.
  • handles caching and HTTP Cache-Headers.

This web application is distributed in a rolling release fashion from the master branch.

Using the included html2rss-configs

Build the URL like this:

The feed config you'd like to use:
lib/html2rss/configs/domainname.tld/whatever.yml
β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ^^^^^^^^^^^^^^^^^^^^^^^^^^^

The corresponding URL:
http://localhost:3000/domainname.tld/whatever.rss
β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ β€Œ ^^^^^^^^^^^^^^^^^^^^^^^^^^^

πŸ‘‰ See file list of all html2rss-configs.

Deployment with Docker

Install Docker CE and docker run -d -p 3000:3000 gilcreator/html2rss-web.

To use your private feed configs, mount a feed.yml into the /app/config/ folder.

docker run -d --name html2rss-web \
  --mount type=bind,source="/path/to/your/config/folder,target=/app/config" \
  -p 3000:3000 \
  gilcreator/html2rss-web

Automatic updating

A primitive way to automatically update your Docker instance is to set up this script as a cronjob:

#!/bin/bash
set -e
docker pull -q gilcreator/html2rss-web
(docker stop html2rss-web && docker rm html2rss-web) || :
docker run -d --name html2rss-web --restart=always -p 3000:3000  \
  --mount type=bind,source="/home/deploy/html2rss-web/config,target=/app/config" \
  gilcreator/html2rss-web

The cronjob for updating every 30 minutes could look like this:

*/30 *  * * * /home/deploy/html2rss-web/update > /dev/null 2>&1

Heroku one-click deployment

Deploy

Since this repository receives updates frequently, you'd need to update your instance yourself.

Run it locally

  1. Install Ruby >= 2.6.
  2. gem install bundler foreman
  3. bundle
  4. foreman start

html2rss-web now listens on port 5000 for requests.

Feed configs runtime health checks

Websites often change their markup. To get notified when one of your own configs break, use the /health_check.txt endpoint.

It will respond with success if your feeds are generatable. Otherwise it will not print success, but states the broken config names.

About

πŸ•Έ Builds and serves RSS feeds via HTTP. Generate your own feeds or start instantly with the included configs.

License:MIT License


Languages

Language:Ruby 75.9%Language:Dockerfile 13.1%Language:Shell 10.9%