---
title: "How to self-host RSSHub in 2026: its Compose file, one command and HTTPS | Pethost"
description: "Self-host RSSHub with its own Docker Compose file, unchanged: run pethost deploy and get HTTPS, with Redis and Browserless running, for €9.99 a month."
---

[Blog](https://pethost.dev/blog/) · Deploy guides

# How to self-host RSSHub in 2026: its Compose file, one command and HTTPS

By the Pethost team · 10 October 2026 · 7 min read

You want an RSSHub instance of your own, so that your feeds do not depend on a public one, and you want it at an address with HTTPS without setting up a server. RSSHub ships a Docker Compose file, and on Pethost a Compose file is a project. Run `pethost deploy` in a folder that holds the file as it is. RSSHub, Redis and Browserless started in 1 minute 31 seconds, at an address the deploy gave by itself.

**In short**

- **The file is RSSHub's own:** `docker-compose.yml` from its repository, with RSSHub, Redis for the cache and Browserless for routes that need a browser.
- **No edit:** the file deploys as written, its `ports` lines included.
- **One command:** `pethost deploy`. The machine finds the web port the file publishes and serves it at `https://rsshub.yourname.pethost.app`.
- **What it takes:** about 760 MB of memory for the three services together, of the machine's 3 GB.
- **The price:** €9.99 a month for a machine of 2 vCPU, 3 GB and 30 GB that runs RSSHub and every other project you have. There is no free tier.

## What you need to self-host RSSHub in 2026

Three things: RSSHub's Compose file, the `pethost` command and a Pethost account.

**The file** is in RSSHub's repository, and its deployment page recommends it. Put it into a folder of its own, whose name becomes the project's name:

```
mkdir rsshub && cd rsshub
curl -O https://raw.githubusercontent.com/DIYgod/RSSHub/master/docker-compose.yml
```

**The command** is one program, installed by one line. Every command it has is in the [CLI's reference](https://pethost.dev/docs/cli/).

```
curl -fsSL https://pethost.dev/install.sh | sh      # macOS, Linux
irm https://pethost.dev/install.ps1 | iex           # Windows, in PowerShell
```

**The account** needs a plan. If you are not signed in, `pethost deploy` opens your browser and signs you in. If you have no plan yet, it shows you where to choose one, and waits.

## Deploy RSSHub with pethost deploy

The file needs no change. Run `pethost deploy` in the folder. This is the whole screen:

```
$ pethost deploy
Name it [rsshub]:    it will live at https://rsshub.sam.pethost.app

✓ Packed 1 file, 2 KB
✓ Uploaded straight to your machine
✓ Started in 1 min 31 s
  · deployed docker-compose.yml as compose.yaml
✓ rsshub listens on 1200 → https://rsshub.sam.pethost.app
  It answers 200.

https://rsshub.sam.pethost.app

Wrote .pethost (commit it). Next:   pethost logs -f   ·   pethost open
```

The service `rsshub` publishes its port in the file:

```
services:
    rsshub:
        image: diygod/rsshub # or ghcr.io/diygod/rsshub
        restart: always
        ports:
            - '1200:1200'
```

Once RSSHub listened, the machine asked that port what it is, got an answer in HTTP, and gave it the project's address. So the port is served over HTTPS at that address and is not opened on the machine beside it: we tried `http://` the machine's address on port 1200, and nothing answered. Another project whose file publishes the same port gets its own address the same way.

Redis and Browserless publish no port, so they have no address and nothing of them is open: only RSSHub reaches them, by their names. Redis keeps its volume, and the health checks and `depends_on` run as RSSHub wrote them. This is the project after the deploy:

```
$ pethost
rsshub · https://rsshub.sam.pethost.app
browserless	healthy	since 2026-10-10T16:23:26Z	listens on 3000	memory 361 MB
redis	healthy	since 2026-10-10T16:23:26Z	listens on 6379	memory 58 MB
rsshub	healthy	since 2026-10-10T16:23:26Z	listens on 1200, 9464	memory 345 MB
3 services run · last deploy succeeded 2026-10-10T16:23:57Z
```

## Ask your RSSHub for a feed

Open the address: the welcome page answers 200, and so does `/healthz`. A route is its path after the address, as on any instance. We asked for a GitHub user's repositories:

```
$ curl https://rsshub.sam.pethost.app/github/repos/DIYgod
<?xml version="1.0" encoding="UTF-8"?><rss xmlns:atom="http://www.w3.org/2005/Atom" … version="2.0"><channel><title>DIYgod&#39;s GitHub repositories</title>…
```

Put that address into your feed reader in place of the public instance's. To use a name of your own, such as `rss.example.com`, run `pethost domain add rss.example.com rsshub:1200`. It prints the one DNS record to make, a CNAME to your machine's name, and the certificate comes by itself once the name resolves.

## Configure RSSHub: variables and the Browserless token

RSSHub's settings are the variables under `environment` in the file. Change one and run `pethost deploy` again:

```
$ pethost deploy
rsshub (.pethost)
✓ Packed 2 files · uploaded · started in 30 s
  · kept the project's .env
  · deployed docker-compose.yml as compose.yaml
  · kept the project's x-pethost
  It answers 200.
https://rsshub.sam.pethost.app
```

One value is not in the file but read from outside it. RSSHub and Browserless share a token, written as `${BROWSERLESS_TOKEN:-rsshub}`, which is `rsshub` until you set it. Set your own with one command. It goes into the project's `.env` file on the machine, and both services start again with it:

```
$ pethost env set BROWSERLESS_TOKEN=$(openssl rand -hex 16)
rsshub (.pethost)
✓ /.env has BROWSERLESS_TOKEN now. Deployed in 31 s.
```

Browserless took the most memory of the three. The comments in RSSHub's file say how to run without it, or with the image that has Chromium inside.

### Update RSSHub

The file's image has no tag, so it is the newest one on the day of the first deploy. RSSHub publishes an image for each day, tagged with its date. To update at a moment you choose, name a tag in the file and deploy again:

```
image: diygod/rsshub:2026-10-10
```

If a version goes wrong, `pethost rollback` puts the file before it back, and your machine keeps the three versions before the current one. An AI agent can do all of this for you through Pethost's MCP server: [how an agent deploys and looks after a project](https://pethost.dev/blog/hosting-for-ai-coding-agents/).

## What you get for the price

Pethost is €9.99 a month for everything you host, on 2 vCPU, 3 GB of memory and 30 GB of disk. RSSHub with Redis and Browserless took about 760 MB of that memory, so the same machine has room for your other projects, such as [Umami](https://pethost.dev/blog/self-host-umami/) beside it. There is [no fee per project](https://pethost.dev/blog/unlimited-projects-flat-monthly-fee/) and [nothing metered](https://pethost.dev/blog/paas-without-usage-based-billing/): a reader that asks for forty feeds every ten minutes costs nothing more.

- **€9.99** a month for the whole machine
- **1 min 31 s** to pull and start the three services
- **760 MB** of memory for all of them

What is already done on it: HTTPS with certificates that renew themselves, nightly backups kept for 14 days, SSH into any container, every request counted, and a Compose project that [runs from its own file](https://pethost.dev/blog/managed-docker-compose-hosting/). The machine is always on, so a feed reader's request [never waits for a cold start](https://pethost.dev/blog/always-on-hosting-no-cold-starts/). The plans are on the [pricing](https://pethost.dev/#pricing) part of the first page.

**Every project, labeled.** Six projects on one Starter machine, each with its address and its requests of the last day.

![The Pethost panel's first page: the machine's CPU, memory and disk, and six projects as cards.](https://pethost.dev/shots/projects.webp)

### Pethost is the best pick for

- **People who read many feeds** and want an instance that only they use
- **Solo developers** who host RSSHub beside their own projects, on one bill
- **People whose agent deploys for them**: Claude Code or Codex deploys the Compose file and reads its logs
- **Small groups** who share one instance among friends or a team

### Look elsewhere if

- You run a public instance for thousands of readers and need several regions

## Questions

### Can I self-host RSSHub with Docker Compose without managing a server?

Yes. On Pethost RSSHub's own `docker-compose.yml` is the project, as it is: run `pethost deploy` in its folder. The deploy gives RSSHub an address with HTTPS by itself, and the proxy and the backups are already there.

### Which port does RSSHub use?

1200, which its Compose file publishes. On Pethost the file stays as written: the machine serves that port at the project's address, so readers come over HTTPS on the usual port, and port 1200 is not opened on the machine.

### How much memory does self-hosted RSSHub need?

On our test machine the three services of RSSHub's Compose file took about 760 MB: Browserless 361 MB, RSSHub 345 MB and Redis 58 MB. A Starter machine has 3 GB.

### Do I need Redis and Browserless to run RSSHub?

RSSHub's Compose file runs both: Redis is its cache, and Browserless serves the routes that need a browser. The comments in the file say which lines to remove to run without Browserless.

### How do I update a self-hosted RSSHub?

Name a newer image tag in `docker-compose.yml`, for example the day's date, and run `pethost deploy`. `pethost rollback` goes back to the file before it.

### What does it cost to self-host RSSHub on Pethost?

€9.99 a month for the Starter machine of 2 vCPU, 3 GB and 30 GB, with no fee per project and nothing counted per request: the same machine runs your other apps and sites. There is no free tier. Prices are without VAT.

The screens are deploys of the Compose file in RSSHub's repository, with the images of that day and pethost 0.2.2, on a test machine of ours. The account in them is the example one, `sam`.

1. [RSSHub: deployment](https://docs.rsshub.app/deploy/)
2. [RSSHub: docker-compose.yml](https://github.com/DIYgod/RSSHub/blob/master/docker-compose.yml)
3. [RSSHub: configuration](https://docs.rsshub.app/deploy/config)
4. [pethost, the command line of Pethost](https://pethost.dev/docs/cli/)

## Put your projects online today

A machine of your own, as many projects as fit, one flat price. Nothing metered, nothing billed on top.

[Host all your projects for €9.99/mo](https://console.pethost.dev/)

## Keep reading

- 10 October 2026 [How to self-host Umami in 2026: its Compose file, one command and HTTPS](https://pethost.dev/blog/self-host-umami/) Self-host Umami analytics with its own Docker Compose file: set two secrets, run pethost deploy, get HTTPS, Postgres and nightly backups for €9.99 a month.
- 25 September 2026 [Hosting providers with an official MCP server in 2026: deploy, logs and rollback compared](https://pethost.dev/blog/hosting-with-mcp-server/) 18 of 19 hosting platforms have an official MCP server in 2026. Two have a rollback tool. Pethost's 13 tools deploy, read logs, roll back and restore.
- 16 September 2026 [Hosting for AI coding agents in 2026: let Claude Code or Codex deploy and debug production](https://pethost.dev/blog/hosting-for-ai-coding-agents/) To let Claude Code or Codex deploy and debug production alone, a host must give the agent five things. Pethost does, with 13 MCP tools, from €9.99 a month.
- 27 September 2026 [European hosting for an app with Postgres at a flat monthly price in 2026: what €10 a month buys](https://pethost.dev/blog/european-hosting-postgres-flat-price/) An app with Postgres in the EU at a flat monthly price is €9.99 on Pethost: a 3 GB machine for every project that fits. Eleven hosts, priced.

[All articles](https://pethost.dev/blog/) · [About Pethost](https://pethost.dev/about/) · [Pricing](https://pethost.dev/#pricing)

Pethost · Stephan Gomer · NIP 1133096755

[Home](https://pethost.dev/) [About](https://pethost.dev/about/) [Blog](https://pethost.dev/blog/) [Terms](https://pethost.dev/terms/) [Privacy](https://pethost.dev/privacy/) [Refunds](https://pethost.dev/refunds/) [support@pethost.dev](mailto:support@pethost.dev)
