Start a stream
REC TC 00:00:00:00
HeroStatusFeaturesHow it worksPlatformsA streamInstallFAQGet it
Software by CTD · Self-hosted · Free + open source

CTD
Relay.One OBS. Every platform.
Your server.

Self-hosted, open-source multistreaming — an alternative to Restream that you run yourself. OBS sends a landscape feed and a vertical feed to your own server, which relays each one to the platforms that want it. One title kept in sync everywhere, every chat in one view. One Docker image, no domain needed.

Free · AGPL-3.0 Docker · amd64 + arm64 TrueNAS 24.10+ No re-encoding Beta
Your server · CTD Relay
CTD Relay icon
OBS
Main outputLandscape
AitumVert
Relay Copy · no re-encode One title · one chat
  • TwitchL
  • YouTubeL+V
  • KickL
  • FacebookL
  • InstagramV
  • TikTokV
  • XL
  • Custom RTMPL/V
Status · early beta

Early, and upfront about it. The core relay, the API-based platforms and the web UI come first. Instagram, TikTok, X and Facebook-profile automation is experimental and can break when those sites change. There's no tagged release yet: Docker Compose builds it from source today, and the TrueNAS install uses the release image that arrives with the first release. Testers and feedback are very welcome.

Feedback on GitHub
Self-hosted multistreaming

Your own Restream.
On your own box.

Two feeds, many platforms

Landscape from OBS's main output, vertical from the Aitum Vertical plugin. Every destination is bound to the feed it needs, and routing is editable per destination.

No re-encoding

Video and audio are copied as-is, so CPU use stays near zero, even on a NAS.

Goes live when OBS does

Auto go-live when the feed arrives (or manual), automatic retries, and short OBS disconnects ridden out without ending the lives.

One title everywhere

Set it once and it's pushed to every platform, before and during the stream. The category or game is never touched.

Every chat, one view

Read-only chat from every platform in one combined feed, plus a chat overlay for an OBS browser source.

Health on every destination

Each feed's resolution, fps, codec and bitrate, and every destination's phase: waiting for feed, connecting, live, retrying or error.

An OBS dock

A dock for OBS shows the session, feed bitrates, every destination (red when it's down, with the reason), viewers and the combined chat.

Twitch Dual Format

Let OBS send Dual Format straight to Twitch while Relay keeps the Twitch title in sync, reads its chat and relays everything else.

Browser automation, no API needed

For Instagram, TikTok, X and Facebook profiles you log in yourself in a live view of the app's browser; it creates the live, reads the stream key and clicks Go live. Experimental.

Experimental

Secure by default

Automatic HTTPS with no domain needed, a first-run setup code, Argon2id passwords, lockout, CSRF protection, encrypted secrets, roles, an audit log and optional 2FA.

How it works

Three steps.
Every platform.

RTMP stays on your network by design: OBS and the server share a LAN (or a VPN). The web UI is what you open to the internet, over HTTPS.

01

Point OBS at your server

Main output to rtmp://<server-ip>:1935/live, and the Aitum Vertical output to the same server. Never port-forward 1935.

02

Connect your platforms

Twitch, YouTube, Kick and Facebook Pages connect through their official APIs with a free developer app you register once. Create a destination per platform and bind it to a feed.

03

Set a title. Go live.

Type the title on the dashboard and start streaming in OBS. Every destination goes live with it — and stays live through a short OBS drop.

Platforms

Where it streams.

● Official API   ● Browser automation (experimental). API platforms need a free developer app you register once.

PlatformFeedStream keyTitleChatNotes
Twitch Landscape (+ vertical via Dual Format) Official API Official API Twitch chat Dual Format: OBS sends it direct (recommended)
YouTube Landscape and/or vertical Official API Official API Official API Chat polling uses the daily API quota
Kick Landscape Pasted once Official API Public chat feed
Facebook Page Landscape Official API Official API Official API Your own Meta app in development mode
Facebook profile Landscape Persistent key, pasted once Browser Browser Experimental
X Landscape Live Studio source, pasted once Browser Browser ExperimentalNeeds X Premium, select regions
Instagram Vertical Browser, new key every stream Browser Browser ExperimentalPublic account with 1,000+ followers
TikTok Vertical Browser, new key every stream Browser Browser ExperimentalNeeds LIVE stream key access
Custom RTMP Either Pasted once — — Trovo, Owncast, another restreamer…
A typical stream

Set it once.
Live everywhere.

Pre-showGo liveOn airOn air
01 · Set the title
02 · OBS goes live
03 · Live everywhere
04 · Every chat, one view

Set the title

Once, on the dashboard. It's pushed to every platform before you go live; the category or game is left alone.

OBS goes live

The feed reaches your server and every destination goes live with it automatically — or flip them yourself.

Live everywhere

Health and stats per destination, automatic retries, and a short OBS disconnect is ridden out without ending the lives.

Every chat, one view

Read every platform's chat on the dashboard, in the OBS dock, or on stream with the chat overlay.

Install

Runs on your NAS.

One multi-arch image (amd64 and arm64). No domain needed: it gets a Let's Encrypt certificate for your IP.

Docker Compose · any Linux host

Build it and run it

git clone https://github.com/ItsLimitlezz/ctd-relay.git
cd ctd-relay && cp .env.example .env
mkdir -p data && sudo chown 568:568 data
docker compose up -d
docker compose logs | grep setupCode

Open https://<server-ip>, enter the one-time setup code and create your admin account. Forward TCP 443 and 80 for remote access — never 1935.

TrueNAS 24.10+ · SCALE + Community

Install via YAML

Create a dataset, then Apps → Discover Apps → ⋮ → Install via YAML with the repo's TrueNAS file, and forward public ports 443 → 30443 and 80 → 30080 on your router.

This path pulls the published release image, which arrives with the first tagged release. Until then, use Docker Compose.

TrueNAS guide →
FAQ

Questions,
answered.

What is CTD Relay?

Self-hosted, open-source multistreaming: an alternative to Restream that you run yourself. OBS sends a landscape feed and a vertical feed to your own server, which relays each one to the platforms that want it — Twitch, YouTube, Kick, Facebook, X, Instagram, TikTok and any custom RTMP server — with one stream title kept in sync everywhere and every platform's chat in one combined view.

Wasn’t this called CTD Multi-Stream?

Yes. CTD Relay was called CTD Multi-Stream until October 2026 — only the name changed. The code lives at github.com/ItsLimitlezz/ctd-relay, and the old repository address forwards there.

Is it free?

Yes. It's free and open source under the AGPL-3.0 licence, with no subscription. You run it on your own hardware. If you run a modified version as a service, the licence requires you to publish your source under the same licence.

What do I need to run it?

A Linux server or NAS with Docker (amd64 or arm64), or TrueNAS 24.10 (Electric Eel) or newer. OBS has to be on the same network as the server, or reach it over a VPN. For remote access to the web UI, forward TCP 443 and 80 — never 1935. No domain name is needed: it gets an HTTPS certificate for your IP automatically.

How does vertical video get to TikTok, Instagram and YouTube Shorts?

OBS's main output is the landscape feed. The free Aitum Vertical plugin adds a second, vertical canvas with its own stream output, which you point at the same server. Each destination is bound to the feed it needs: TikTok and Instagram take vertical, YouTube can take landscape, vertical or both.

Does it re-encode my stream?

No. Video and audio are copied as-is, so CPU use stays near zero, even on a NAS. You set bitrate, keyframe interval and audio in OBS once, and every platform gets that stream.

Which platforms are solid, and which are experimental?

Twitch, YouTube, Kick and Facebook Pages work through each platform's official API, using a free developer app you register once. Instagram, TikTok, X and Facebook profiles have no streaming API, so the app drives a browser you log into yourself; those are experimental and can break when those sites change. Instagram needs a public account with 1,000+ followers, TikTok needs LIVE stream key access, and X needs X Premium in select regions.

Does it work with Twitch Dual Format?

Yes — the recommended way is to let OBS send Dual Format straight to Twitch, while Relay keeps the Twitch title in sync, reads Twitch chat and relays your feeds to every other platform. Relaying both feeds to Twitch as Dual Format from the server is experimental, and Twitch currently refuses it.

Can CTD see my streams, keys or chat?

No. It runs on your server and talks only to the platforms you connect (and to Let's Encrypt for its certificate). Stream keys, OAuth tokens, developer-app secrets and browser sessions are encrypted at rest with AES-256-GCM in your data folder, and passwords for browser-automated platforms are never stored or typed by the app — you log in yourself.

Can CTD run it for us?

Yes. CTD Relay is what runs CTD's own livestream production, so if you'd rather not host it yourself, we run it for your show along with the cameras, encoding and monitoring. See livestream production.

How is it different from Restream?

Restream is a hosted service: nothing to install, and your stream runs through their cloud. CTD Relay is software you run on your own server, so your keys stay on your hardware and there's no subscription. The trade-off is that you host it, on a NAS or any Docker box on the same network as OBS — and it's early.

Is it ready to use?

It's in early beta. The core relay, the API-based platforms and the web UI are the focus of the first releases; browser-automated platforms are experimental. There's no tagged release yet: Docker Compose builds it from source today, and the TrueNAS install uses the release image that arrives with the first tagged release. Testers and feedback are very welcome on GitHub.

Get CTD Relay. Free · Open source (AGPL-3.0) · Your server, your keys