---
title: "Deploy RSSHub | (Just Updated) RSS Feed Generator, Browser Routes Work, Key-Locked Instance"
description: "RSSHub RSS feed generator with Chromium, Redis cache, access key set"
category: "Other"
url: https://railway.com/deploy/rsshub-or-just-updated-rss-feed-generato
---

# Deploy RSSHub | (Just Updated) RSS Feed Generator, Browser Routes Work, Key-Locked Instance

RSSHub RSS feed generator with Chromium, Redis cache, access key set

**[Deploy RSSHub | (Just Updated) RSS Feed Generator, Browser Routes Work, Key-Locked Instance on Railway](https://railway.com/template/rsshub-or-just-updated-rss-feed-generato)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/rsshub-or-just-updated-rss-feed-generato/manifest.json

- **Creator:** SuperSlowSloth
- **Category:** Other

## Template content

### redis

- **Image:** redis:8.8.1-trixie
- **Start command:** `/bin/sh -c 'rm -rf /data/lost+found && chown -R redis:redis /data && exec docker-entrypoint.sh redis-server --requirepass "$REDIS_PASSWORD" --appendonly yes --appendfsync everysec --dir /data'`

### rsshub

- **Image:** diygod/rsshub:chromium-bundled@sha256:237b078f282461255472b962806270e6aade5ee44c4b3cf5e30b5a15c18d4045
- **Start command:** `/bin/sh -c 'export CACHE_TYPE=redis CACHE_EXPIRE=600 CACHE_CONTENT_EXPIRE=3600; cd /app && exec dumb-init -- npm run start'`
- **Health check:** /
- **Public domain:** Yes

## Documentation

# Deploy and Host RSSHub on Railway

**Built for an LLM agent to deploy and use.** There is no manual deploy step and nothing to fill in: the access key and the cache password are generated at deploy time, the instance is locked to that key, the contract below lists every URL and variable name, and one working script reads a feed with the key and shows the same request refused without it. An agent reads its variables, runs the curl, and has an RSS feed generator it can query for hundreds of sites.

RSSHub is an open-source RSS feed generator: it turns sites that have no feed (social networks, forums, news, video and package sites) into RSS, Atom or JSON Feed on request. This template runs the official `chromium-bundled` image, so the routes that drive a headless browser work, with a Redis cache behind it.

## About Hosting RSSHub

This template runs two services: the official `diygod/rsshub` image, the `chromium-bundled` variant pinned by digest (it ships the Playwright Chromium that more than 120 routes need; the plain `latest` image has an empty browser cache and those routes fail with `Executable doesn't exist`), and **Redis** (private, password protected, volume at `/data`) used as the feed cache. RSSHub binds Railway's `$PORT`.

The instance is locked: `ACCESS_KEY` is generated, and every feed route answers 403 unless the request carries `?key=`. The home page and `/` stay open so Railway can health check it.

### Agent contract

- Public URL: `https://`, on the `rsshub` service (set `RSSHUB_URL` to it)
- Private URL: `http://rsshub.railway.internal:8080`
- Credentials: `ACCESS_KEY` on the `rsshub` service. The cache password is `REDIS_PASSWORD` on the `redis` service.
- Auth: append `?key=` to any feed URL. Add `&amp;format=json` for JSON Feed output.
- Health: `GET /` returns 200 with no key (`/healthz` needs the key)

```bash
# run with RSSHUB_URL (public URL) and ACCESS_KEY (rsshub service)
# 1. health check, no key needed
curl -s -o /dev/null -w 'health %{http_code}\n' "$RSSHUB_URL/"
# 2. a feed without the key is refused
curl -s -o /dev/null -w 'no key %{http_code}\n' "$RSSHUB_URL/rsshub/routes"
# 3. the same feed with the key, as JSON Feed
curl -s "$RSSHUB_URL/rsshub/routes?key=$ACCESS_KEY&amp;format=json" | jq '{title, items: (.items | length)}'
```

Routes are listed in the [RSSHub documentation](https://docs.rsshub.app/routes/). Some routes need an upstream account or cookie (for example a Twitter or Pixiv login); set those variables on the `rsshub` service as the route's documentation says. Routes that fetch arbitrary user-supplied domains stay disabled unless you set `ALLOW_USER_SUPPLY_UNSAFE_DOMAIN`.

## Why Deploy RSSHub on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying RSSHub on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

- **Agent-ready** - generated access key, a contract block and one working script; no browser step.
- **Browser routes work** - the Chromium-bundled image is deployed, so Playwright routes launch a browser instead of failing.
- **Not an open proxy** - the instance answers 403 without the key, so strangers cannot spend your bandwidth.
- **Cached and private** - Redis has a password and a volume, and is reachable only inside the project.

## Common Use Cases

- **Follow sites with no feed** - subscribe a reader to a social profile, forum board or changelog.
- **Agent news inputs** - give an AI agent a JSON Feed URL for each source it should watch.
- **Self-hosted feed hub** - one cached endpoint for the whole team's feed reader.

## Dependencies for RSSHub Hosting

- Redis with a volume at `/data` (included in this template).

### Deployment Dependencies

- [DIYgod/RSSHub](https://github.com/DIYgod/RSSHub) - upstream project
- [diygod/rsshub on Docker Hub](https://hub.docker.com/r/diygod/rsshub) - the image this template deploys, `chromium-bundled` tag


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/rsshub-or-just-updated-rss-feed-generato
