What you need
FeedStash keeps your feeds and everything you save on a server you run yourself, so nothing goes through Liftbridge Labs. The server is free and runs as one Docker container. You need a computer that stays on and can run Docker: a home server or NAS (unRAID, Synology), a Linux box or VPS, or a Mac or Windows PC with Docker Desktop.
1. Start the server
With Docker, run this on that computer:
docker run -d --name feedstash --restart unless-stopped \
-p 8672:8672 \
-e BASE_URL=http://192.168.1.50:8672 \
-v feedstash-data:/data \
liftbridgelabs/feedstash:latestChange 192.168.1.50 to that computer’s address on your network. BASE_URL is the address you open FeedStash at; if you’ll use more than one (say, a web address away from home and the local one at home), list them separated by commas.
With Docker Compose, put this in a file called compose.yaml and run docker compose up -d in the same folder:
services:
feedstash:
image: liftbridgelabs/feedstash:latest
container_name: feedstash
restart: unless-stopped
ports:
- "8672:8672"
environment:
BASE_URL: http://192.168.1.50:8672
volumes:
- feedstash-data:/data
volumes:
feedstash-data:On unRAID, add a container with the repository liftbridgelabs/feedstash:latest, port 8672, the path /data pointed at /mnt/cache/appdata/feedstash (a pool, not /mnt/user), and the variables BASE_URL, PUID=99 and PGID=100. On Synology, create a project in Container Manager from the Compose file above, with the volume changed to a folder such as /volume1/docker/feedstash:/data.
2. Make your account
Open the address you chose (for example http://192.168.1.50:8672) in a browser on the same network. The first time, FeedStash asks you to make an account; that one becomes the admin. For safety this only works from your own network. If you can only reach the server from outside, set a SETUP_TOKEN variable on the container and enter it on that page.
You now have the web app. Follow a feed with + Add, pick some from Discover feeds, or bring yours from Feedly or another reader under Settings → Feeds → Import & export (an OPML file, or Feedly’s export folder).
3. Reach it from your phone
At home, your phone reaches the server at the same address. Away from home, it needs a way in. The simplest is a private network app such as Tailscale on the server and the phone. Or put the server behind a reverse proxy with its own web address and https (Caddy, Nginx Proxy Manager, a Cloudflare Tunnel). Add that address to BASE_URL as well, first in the list.
If the proxy has its own sign-in in front of FeedStash (Authentik, Authelia, Cloudflare Access), the app can’t get through it; let FeedStash’s own sign-in protect it instead.
4. Connect the app
- Get FeedStash from the App Store on your iPhone or iPad.
- In the web app on your computer, open Settings → Apps → Connected apps and choose Connect a phone or iPad. A code appears.
- Point the iPhone or iPad Camera at the code, or tap Scan QR code in the app. The app connects and fetches your feeds.
Rather type it? Choose New token instead, then enter the server address and that token in the app’s Settings.
5. Save from your browser and email
Add FeedStash Capture from the Chrome Web Store or Firefox Add-ons and give it your server address. To save by email, connect a mailbox under Settings → Stash → Email to your stash.
Keeping it up to date
New releases come with notes on the releases page, and the web app’s sidebar says when one is out. Take a backup first, then pull the new image and recreate the container (docker compose pull && docker compose up -d, or Force update on unRAID). To back up while it runs:
docker exec feedstash python -m app.cli backup /data/backups/feedstash-$(date +%F).dbThen copy /data/backups and /data/uploads somewhere safe.
Stuck?
The server’s README has every setting, or get in touch.