# Dispatch a self-hosted RSS reader A clean, fast RSS/Atom reader you run yourself. Three-pane layout on desktop (feeds → articles → reading pane), a single stacked view with swipe-style navigation on mobile. Feeds refresh automatically in the background. - Add feeds by URL, organize them into folders - Unread / starred / all-articles views, per-feed and per-folder views - Full-text search across your fetched articles - Clean reading view (images, embeds, and formatting preserved; ads/scripts/trackers stripped) - OPML import and export (moving in from another reader, or backing out) - Light and dark themes - Everything in a single SQLite file ## Quick start (Docker Compose) This is the easiest path and what the instructions below assume. 1. Copy this whole `dispatch-rss` folder onto your server (or clone it if you put it in git). 2. Edit `docker-compose.yml` if you want a different port than `8080`, or point the `./data` volume at wherever you want the database stored. 3. From inside the folder: ```bash docker compose up -d --build ``` 4. Visit `http://:8080`. That's it — the container fetches your feeds every 15 minutes by default (configurable via `FETCH_INTERVAL_MINUTES`) and stores everything in the mounted `/data` volume, so updating or recreating the container never loses your feeds or read state. ## Running this on Unraid specifically You have two easy options. Either works — pick whichever you're already using for other containers. ### Option A: Compose Manager plugin (recommended if you use docker-compose elsewhere) 1. Install **Compose Manager** from the Community Applications store, if you don't have it. 2. Copy this project folder to somewhere on your array, e.g. `/mnt/user/appdata/dispatch-rss/`. 3. In Compose Manager, add a new stack pointing at that folder's `docker-compose.yml`. 4. Before starting it, change the volume line to something durable on your array, e.g.: ```yaml volumes: - /mnt/user/appdata/dispatch-rss/data:/data ``` 5. Start the stack. The UI will be at `http://:8080`. ### Option B: Plain Docker (no compose plugin needed) 1. Copy the project folder to your server, e.g. `/mnt/user/appdata/dispatch-rss/`. 2. Open an Unraid terminal and build the image: ```bash cd /mnt/user/appdata/dispatch-rss docker build -t dispatch-rss:latest . ``` 3. In the Unraid **Docker** tab, click **Add Container**, and set: - **Repository**: `dispatch-rss:latest` - **Network Type**: `bridge` - **Port**: container `8080` → host `8080` (or any free port you prefer) - **Path**: container `/data` → host `/mnt/user/appdata/dispatch-rss/data` - **Environment variable** (optional): `FETCH_INTERVAL_MINUTES` = `15` 4. Apply, then visit `http://:8080`. If you'd rather not build on the Unraid box itself, you can build the image on another machine, push it to Docker Hub or a private registry, and just point the **Repository** field at that image instead of building locally. ## Configuration Environment variables (all optional): | Variable | Default | What it does | |---|---|---| | `PORT` | `8080` | Port the app listens on inside the container | | `DATA_DIR` | `/data` | Where the SQLite database file is stored | | `FETCH_INTERVAL_MINUTES` | `15` | How often feeds are refreshed automatically | ## Backing up