All Projects β†’ html2rss β†’ html2rss-web

html2rss / html2rss-web

Licence: MIT License
πŸ•Έ Generates and delivers RSS feeds via HTTP. Create your own feeds or get started quickly with the included configs.

Programming Languages

ruby
36898 projects - #4 most used programming language
XSLT
1337 projects
HTML
75241 projects
Dockerfile
14818 projects
CSS
56736 projects
shell
77523 projects

Projects that are alternatives of or similar to html2rss-web

reader
A Python feed reader library.
Stars: ✭ 290 (+705.56%)
Mutual labels:  rss, feed, rss-feed, rss-aggregator
Discord feedbot
Moved to https://gitlab.com/ffreiheit/discord_feedbot
Stars: ✭ 67 (+86.11%)
Mutual labels:  rss, feed, rss-feed
Huginn
Create agents that monitor and act on your behalf. Your agents are standing by!
Stars: ✭ 33,694 (+93494.44%)
Mutual labels:  rss, scraper, feed
HungryHippo
πŸ¦› scrapes websites and generates rss feeds
Stars: ✭ 33 (-8.33%)
Mutual labels:  rss, rss-feed, rss-feed-scraper
buran
Bidirectional, data-driven RSS/Atom feed consumer, producer and feeds aggregator
Stars: ✭ 27 (-25%)
Mutual labels:  rss, feed, rss-aggregator
Api.rss
RSS as RESTful. This service allows you to transform RSS feed into an awesome API.
Stars: ✭ 340 (+844.44%)
Mutual labels:  rss, feed, rss-feed
Feed-on-Feeds
FeedOnFeeds is a lightweight server-based RSS feed aggregator and reader
Stars: ✭ 52 (+44.44%)
Mutual labels:  rss, rss-aggregator, rss-feed-scraper
Freshrss
A free, self-hostable aggregator…
Stars: ✭ 3,793 (+10436.11%)
Mutual labels:  rss, feed, rss-aggregator
awesome-rss-feeds
Awesome RSS feeds - A curated list of RSS feeds (and OPML files) used in Recommended Feeds and local news sections of Plenary - an RSS reader, article downloader and a podcast player app for android
Stars: ✭ 114 (+216.67%)
Mutual labels:  rss, feed, rss-feed
Xity Starter
A blog-ready 11ty starter based on PostCSS, with RSS feed and Native Elements!
Stars: ✭ 184 (+411.11%)
Mutual labels:  rss, feed, rss-feed
gitbook-plugin-rss
RSS for your gitbook
Stars: ✭ 19 (-47.22%)
Mutual labels:  rss, feed, rss-feed
RSSnotifier
Node RSS reader telegram bot. Provides notification on queries-matching elements and supports multiple users.
Stars: ✭ 15 (-58.33%)
Mutual labels:  rss, rss-feed, rss-aggregator
Feedbag
Ruby's favorite feed auto-discovery library/tool
Stars: ✭ 115 (+219.44%)
Mutual labels:  rss, feed, rss-feed
Gofeed
Parse RSS, Atom and JSON feeds in Go
Stars: ✭ 1,762 (+4794.44%)
Mutual labels:  rss, feed, rss-feed
ttrss ynh
Tiny Tiny RSS package for YunoHost
Stars: ✭ 17 (-52.78%)
Mutual labels:  rss, rss-feed, rss-aggregator
goeland
An alternative to rss2email written in golang with many filters
Stars: ✭ 78 (+116.67%)
Mutual labels:  rss, rss-feed, rss-feed-scraper
tidyRSS
An R package for extracting 'tidy' data frames from RSS, Atom, JSON and geoRSS feeds
Stars: ✭ 62 (+72.22%)
Mutual labels:  rss, rss-feed
rss-chan
A telegram RSS feed reader bot, written using python and feedparser.
Stars: ✭ 70 (+94.44%)
Mutual labels:  rss, rss-feed
awesome-feeds
A curated list of tech, machine learning, biz and etc... feeds
Stars: ✭ 25 (-30.56%)
Mutual labels:  rss, feed
micro-feed
Micro-Feed an extremely small size feed sync service with beautiful GUI, GraphQL support(also a graphql playground) support. https://github.com/leopku/micro-feed
Stars: ✭ 22 (-38.89%)
Mutual labels:  feed, rss-aggregator

html2rss logo

html2rss-web 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.

πŸ’“ Depending on this application? Feel free to donate! Thank you!

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

using containrrr/watchtower

The docker image containrrr/watchtower automatically pulls running docker images and checks for updates. If an update is available, it will start the updated image with the same configuration as the running one.

To start html2rss-web and let watchtower monitor it, save this as start script:

#!/bin/sh

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

docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower \
  --cleanup \
  --interval=7200 \
  html2rss-web

Watchtower will pull in a 2h interval to check if there's a new image and cleanup (remove the stopped previous image).

via cronjob

A primitive way to automatically update your Docker instance is to set up this script as a cronjob. This has the disadvantage that it restarts the container without first checking whether an update is available or not.

#!/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.

Build and run with docker locally

This approach allows you to play around without installing Ruby on your machine. All you need to do is install and run the Docker daemon.

# Build image from Dockerfile and name/tag it as html2rss-web:
docker build -t html2rss-web -f Dockerfile .

# Run the image and name it html2rss-web-dev:
docker run \
  --detach \
  --mount type=bind,source=$(pwd)/config,target=/app/config \
  --name html2rss-web-dev \
  html2rss-web

# Open a interactive TTY with the shell `sh`:
docker exec -ti html2rss-web-dev sh

# Stop and cleanup container
docker stop html2rss-web-dev
docker rm html2rss-web-dev

# Remove the image
docker rmi html2rss-web

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.

Supported ENV variables

Name Description
PORT default: 3000
RACK_ENV default: 'development'
RACK_TIMEOUT_SERVICE_TIMEOUT default: 15
WEB_CONCURRENCY default: 2
WEB_MAX_THREADS default: 5
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].