Generate a static HTML page from a collection of feeds wtih a simple CLI tool
10K+
The official Docker image for is thebigroomxxl/tinyfeed
⚠️ Warning
You will not be able to use pipelining if you don't use Docker's-iflag (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
⚠️ Warning
Files for the--inputand--outputflags 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
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
}
Content type
Image
Digest
sha256:00981722a…
Size
3.7 MB
Last updated
6 months ago
docker pull thebigroomxxl/tinyfeed