| 1 | # feeds |
| 2 | |
| 3 |  |
| 4 | |
| 5 | *An introduction to RSS* |
| 6 | |
| 7 | Small Go server that merges multiple RSS/Atom feeds into one combined view. Paste feed URLs (or a site URL to auto-discover its feed) and see recent items sorted together. |
| 8 | |
| 9 | ## Run |
| 10 | |
| 11 | ```sh |
| 12 | go run . |
| 13 | ``` |
| 14 | |
| 15 | Server starts on `:3000`. Override with env vars: |
| 16 | |
| 17 | - `HOST` (default `0.0.0.0`) |
| 18 | - `PORT` (default `3000`) |
| 19 | - `BASE_URL` (default `http://localhost:3000`) |
| 20 | |
| 21 | ## Build |
| 22 | |
| 23 | ```sh |
| 24 | go build -o feeds . |
| 25 | ./feeds |
| 26 | ``` |
| 27 | |
| 28 | ## Docker |
| 29 | |
| 30 | ```sh |
| 31 | docker compose up |
| 32 | ``` |
| 33 | |
| 34 | Or build the image directly from the included `Dockerfile`. |
| 35 | |
| 36 | ## Usage |
| 37 | |
| 38 | - Open `http://localhost:3000`, add feed URLs, and view merged items. |
| 39 | - `GET /?urls=<comma-separated-feed-urls>` — renders merged feed items server-side. |
| 40 | - `GET /api/resolve?url=<url>` — resolves a feed or site URL to its feed(s) as JSON. |
| 41 | - `GET /og.png` — dynamically generated Open Graph image. |
| 42 | - `GET /privacy` — privacy page. |
| 43 | |
| 44 | ## License |
| 45 | |
| 46 | [MIT](LICENSE) |