A relay only forwards ciphertext — it cannot see what you write, nor who talks to whom. Run your own and that ciphertext lands in your account. This page walks all three routes end to end.
A wss:// address running on your own Cloudflare account. Set it as your main relay in Cinderous and your offline messages live there. We cannot reach it or manage it — including if we wanted to shut it down.
| Route | Difficulty | About | Best for |
|---|---|---|---|
| One-click from the desktop app | * | 3 min | Most people |
| The Deploy button here (coming soon) | ** | 10 min | Have GitHub, no desktop app |
| Run wrangler yourself | *** | 15 min | Want to change config or use your own domain |
Open the Cinderous desktop app, go to Settings, Connection and backup, and press Run my own node.
Press the button that opens Cloudflare. The permissions are pre-selected for you: upload a Worker, and read account. Create the token and paste it back.
Pick a Cloudflare account. If this is your first Worker, you will be asked to name your address. That name cannot be changed later, so think before you type.
Wait. It uploads the relay, then actually connects to it and only reports success once the node answers.
The last screen has Make this my main relay, already ticked. Press Done and it switches. Untick it if you would rather not — the address stays in your settings and you can switch whenever you like.
It copies the Cinderous relay into your own GitHub account and has Cloudflare deploy it. Good if you do not want to install the desktop app.
Two things to know first. It creates a new repository in your GitHub account. And when the deploy finishes, the address does not come back to the app by itself — you copy it from the Cloudflare page and paste it into Cinderous settings yourself.
For changing config, using your own domain, or just running it locally first. Commands below.
git clone https://github.com/VaalRL/Cinderous cinder && cd cinder
pnpm install
cd relay
npx --yes wrangler@4 login
pnpm run deployIf you want one address that friends can simply open in a browser, use deploy:unified instead. It deploys the web client and the relay as a single Worker. Know the trade: that server also serves the client code, so compromising it means being able to replace that code. A plain relay has no such path, which is why the official nodes do not use this mode.
pnpm run deploy:unifiedIt runs on your Cloudflare account, so that account pays. One person or a small group stays well under the free allowance. But the terms of that allowance have changed more than once, so we do not claim it is free here — read Cloudflare pricing instead.
To check it is alive, open your address with /healthz on the end; ok means yes. (Do not judge by the home page — in unified mode the home page serves the web client by design.) If you are happy for others to use your node, you can apply to the public list; that process checks behaviour, not who you are.
Create a new token and make sure Workers Scripts: Edit is selected. Using the link we give you selects it automatically.
Every account gets this on its first Worker. Just pick a name — but it becomes a permanent part of your address.
In unified mode this is what a missing run_worker_first looks like: the home page serves the web client fine, but the WebSocket never completes. Cloudflare serves a matching asset straight from storage without running your code, and the relay entry point is exactly the home page. Our config already sets it; check that line if you changed it.
An existing Worker of the same name in that account used a different migration tag. Deploy under a different Worker name, or delete the old one first.