An open API service indexing awesome lists of open source software.

https://github.com/chrisallenlane/rdr

A minimalist, self-hosted RSS reader for homelabs (MIRROR)
https://github.com/chrisallenlane/rdr

atom docker feed-reader golang homelab htmx minimalist opml rss rss-reader self-hosted sqlite

Last synced: 10 days ago
JSON representation

A minimalist, self-hosted RSS reader for homelabs (MIRROR)

Awesome Lists containing this project

README

          

# rdr

A minimalist, self-hosted RSS reader for homelabs.

## About

`rdr` is a lightweight RSS/Atom feed reader built with Go and SQLite. It runs
as a single binary with no external dependencies, designed for homelab
deployment on trusted networks. The UI is server-rendered HTML with a minimal
hand-rolled stylesheet. A small optional JavaScript file provides keyboard
shortcuts as a progressive enhancement — everything works without it.

## Screenshots

| Solarized Light | Solarized Dark |
| -------------------------------------------- | ------------------------------------------ |
| ![Light theme](screenshots/items-light.png) | ![Dark theme](screenshots/items-dark.png) |

## Features

- RSS, Atom, and Media RSS feed support (YouTube, Vimeo, and podcast feeds render with thumbnails and media players)
- Full-text search across all items (SQLite FTS5)
- Feed organization with lists (a feed belongs to one list)
- OPML import and export (lists exported as folders)
- JSON HTTP API with bearer-token auth — see [API.md](API.md)
- Four themes: Solarized Light/Dark and Modus Light/Dark (WCAG AAA high-contrast)
- Per-user settings: date display format (relative or absolute), item description previews
- Background feed polling with configurable interval
- Automatic data retention (prune old read items)
- Multi-user support with session-based authentication
- Single binary deployment or Docker
- Keyboard shortcuts for item navigation (vim-style j/k/h/l)
- Mobile-friendly responsive design

## Deployment Model

`rdr` is designed for homelab and trusted-network deployment. It is not
hardened for direct public-internet exposure.

Open registration is intentional for this environment — a homelab operator
typically wants anyone on the local network to be able to create an account
without an admin approval step.

## Quick Start

### Docker

```bash
docker compose up -d
```

Pulls the latest published image from
[ghcr.io/chrisallenlane/rdr](https://ghcr.io/chrisallenlane/rdr) and
starts the service on port 8080. Open , register
an account, and add feeds.

### Binary

```bash
./rdr
```

See [INSTALLING.md](INSTALLING.md) for configuration, Docker Compose setup,
and keyboard shortcuts. See [HACKING.md](HACKING.md) for development
instructions.

## License

[MIT](LICENSE)