Sign inSign up

thebigroomxxl/tinyfeed

By thebigroomxxl

Updated 6 months ago

Generate a static HTML page from a collection of feeds wtih a simple CLI tool

Image
1

10K+

thebigroomxxl/tinyfeed repository overview

Docker

The official Docker image for is thebigroomxxl/tinyfeed

Running with pipelining

⚠️ Warning
You will not be able to use pipelining if you don't use Docker's -i flag (interactive mode).

In this mode, you pass the feeds as arguments to the command and redirect the output using pipelining. This method is simpler because it does not require mounting a volume.

Single feed:

docker run -i thebigroomxxl/tinyfeed https://lovergne.dev/rss  > index.html

Multiple feeds from a file :

cat feeds.txt | docker run -i thebigroomxxl/tinyfeed > index.html

Running with input/output files as a volume

⚠️ Warning
Files for the --input and --output flags won't be available if you don't mount them.

This mounts an entire directory where your input (feeds.txt) and output (index.html) files are located. If you want to bind only the input/output files instead, you will need to use bind mounts.

docker run -v /your/path:/app thebigroomxxl/tinyfeed -i feeds.txt -o index.html

Docker Compose equivalent:

services:
  tinyfeed:
    image: thebigroomxxl/tinyfeed
    command: -i feeds.txt -o index.html
    volumes:
      - /path/to/your/feeds/:/app

Running as a service (daemon mode)

tinyfeed has a daemon mode where it continuously runs and periodically updates the output file. To use it, pass the --daemon flag and set it to restart automatically using Docker's --restart unless-stopped.

This is the previous example adapted to run as a service:

docker run --restart unless-stopped -v /your/path:/app thebigroomxxl/tinyfeed --daemon -i feeds.txt -o index.html

Docker Compose equivalent:

services:
  tinyfeed:
    image: thebigroomxxl/tinyfeed
    command: --daemon -i feeds.txt -o index.html
    volumes:
      - /path/to/your/feeds/:/app
    restart: unless-stopped

As always, tinyfeed only produces an HTML page—it does not run a web server. It's up to you to serve the generated HTML file with a secondary service like Caddy or NGINX. Here is an example with Caddy (I prefer it because it is simpler to configure and handles HTTPS for you automatically):

services:
  tinyfeed:
    image: thebigroomxxl/tinyfeed
    command: --daemon -i feeds.txt -o index.html
    volumes:
      - /path/to/your/feeds/:/app
    restart: unless-stopped

  http-server:
    image: caddy
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - /path/to/your/caddyfile:/etc/caddy/Caddyfile
      - /path/to/your/feeds/:/srv/feed
    restart: unless-stopped

With you caddy file being someting like:

feeds.example.com {
	rewrite * index.html
	root * /srv/feed
	file_server
}

Tag summary

Content type

Image

Digest

sha256:00981722a

Size

3.7 MB

Last updated

6 months ago

docker pull thebigroomxxl/tinyfeed