> ## Documentation Index
> Fetch the complete documentation index at: https://docs.augustin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Reader

# Reader

Miniflux + RSSHub + NextFlux.

## URLs

| Service  | External                                                     | Internal (for Miniflux)      |
| -------- | ------------------------------------------------------------ | ---------------------------- |
| Miniflux | [https://miniflux.augustin.ai](https://miniflux.augustin.ai) | —                            |
| NextFlux | [https://nextflux.augustin.ai](https://nextflux.augustin.ai) | —                            |
| RSSHub   | [https://rsshub.augustin.ai](https://rsshub.augustin.ai)     | `http://rsshub:1200/<route>` |

## Adding Feeds

1. **Site has RSS/Atom** → Add the feed URL directly in Miniflux
2. **Site supported by RSSHub** → Find the route at [https://docs.rsshub.app](https://docs.rsshub.app), add `http://rsshub:1200/<route>` in Miniflux
3. **No feed exists** → Add a scraper route (see below), redeploy, subscribe via `http://feed-scraper:3001/<name>`

### Feed Scraper

A sidecar container (`./scraper/server.js`) that scrapes websites and serves RSS XML for Miniflux to poll. Each site gets its own path.

Current scrapers:

| Path              | Source                       |
| ----------------- | ---------------------------- |
| `/hubermanlab`    | Huberman Lab Newsletter      |
| `/cbinsights-ai`  | CB Insights AI Research      |
| `/kindlemodshelf` | KindleModShelf Announcements |

To add a new site:

1. Inspect the target site's HTML for: listing page structure, pagination, content selectors
2. Add a handler for a new path in `server.js`
3. Parse listings for titles/dates/links, handle pagination, extract article content
4. Wrap in RSS XML
5. Rebuild and redeploy: `docker compose -f reader/compose.yaml build && docker compose -f reader/compose.yaml up -d`

## Architecture

```
miniflux.augustin.ai → Traefik → miniflux:8080
nextflux.augustin.ai → Traefik → nextflux:3000
rsshub.augustin.ai   → Traefik → rsshub:1200

miniflux → miniflux-db (postgres, internal reader network)
miniflux → rsshub:1200 (feed generation)
miniflux → feed-scraper:3001 (custom scraped feeds)
```
