Deploy Owncast Live Streaming: Your Own Stream Page for OBS

Self-host a live video page with chat for events, classes and creators.

Deploy Owncast Live Streaming: Your Own Stream Page for OBS

Just deployed

/app/data

Deploy and Host Owncast Live Streaming on Railway

Owncast logo

Owncast lets you run your own live streaming website: a video player, a real-time chat and a branded page, all on a domain you control. Stream to it from OBS Studio, Streamlabs, vMix, a hardware encoder or ffmpeg over RTMP, and Owncast converts the feed to HLS so it plays in any browser, on phones and on smart TVs. It's open source under the MIT license, has about 11,700 GitHub stars, and runs as one small Go program with an embedded database. That makes it a good fit for events, classes, church services, company broadcasts and creators who want a stream page without a platform in the middle. This template deploys the official Owncast image on Railway with a volume for its data, an HTTPS domain for viewers and a TCP proxy for your encoder. The admin password and stream key are random for every deploy. Expect about $5–15/month for the server, plus bandwidth that grows with your audience.


What This Template Deploys

ServicePurpose
owncastThe owncast/owncast image with a thin Railway start-up wrapper. Serves the player, chat and admin dashboard on port 8080 over HTTPS, and accepts RTMP on port 1935 through a Railway TCP proxy.
VolumeMounted at /app/data. Stores settings, chat history, uploaded emoji and logo, logs, backups and the short rolling buffer of HLS video.

A fresh Owncast install normally uses abc123 for both the admin password and the stream key. Here the wrapper swaps both for generated secrets before anyone can connect, and points the server URL at your Railway domain.


About Hosting Owncast Live Streaming

Most live video ends up on a big platform because it's easy. The trade-off is that the platform owns the page, the chat, the recommendations and the rules. Owncast gives you the same basics on your own site: a player that adapts to the viewer's connection, a chat room with moderation, a page with your name, description and links, and an admin dashboard to run it all.

From encoder to viewer. Your encoder sends a single RTMP feed. Owncast hands it to ffmpeg, which slices it into short HLS segments, optionally at several resolutions, and viewers fetch those segments over HTTPS. Only the latest few seconds are kept, so storage stays small no matter how long you stream.

Planning bandwidth. Video is heavy. Each viewer pulls the full stream, so a 3 Mbps stream uses about 1.35 GB per viewer each hour. At Railway's $0.05 per GB egress, that's around $0.07 per viewer-hour; 50 viewers for a two-hour event is about $7. For bigger audiences, Owncast can push segments to S3-compatible storage served through a CDN.

Keeping CPU low. Every extra quality level means another encode. Start with one output at your source resolution, or passthrough with no re-encoding, and add lower renditions only if viewers on slow connections need them.

Chat that you moderate. You choose the chat rules. Moderators can hide messages and ban users or IP addresses, and you can require viewers to sign in with IndieAuth or a Fediverse account before they chat.

Reach beyond your site. Owncast can act as a Fediverse account, so Mastodon users can follow your stream and get a notification when you go live. You can also list your server in the public Owncast directory.

Typical cost: ~$5–15/month on Railway for the server at small scale, plus about $0.05 per GB of viewer traffic. There are no per-viewer licence fees and no platform cut of donations or sales.


Deploy Owncast Live Streaming in Under 5 Minutes

  1. Click Deploy on Railway and wait for the service to come online.
  2. From the service's Variables, copy OWNCAST_STREAM_KEY and OWNCAST_ADMIN_PASSWORD.
  3. Under Settings and Networking, note the TCP proxy host and port.
  4. In OBS, open Settings and Stream, choose a custom server, enter rtmp://HOST:PORT/live, and paste the stream key.
  5. Visit https://your-domain/admin, sign in as admin, add your name, logo and links, pick your video quality, then press Start Streaming in OBS.

Share your public domain; viewers can watch and chat right away without accounts or apps.


Common Use Cases

  • Conferences and meetups. Give remote attendees a stream page with live Q&A in chat.
  • Classes and workshops. Teach live on your school or academy domain.
  • Church and community services. Broadcast weekly services without ads or recommendations.
  • Company town halls. Stream leadership updates on an internal-looking page you control.
  • Product launches. Host a launch stream on your own site instead of sending people elsewhere.
  • Independent creators. Stream games, art or music with your own branding and rules.
  • Concerts and DJ sets. Share a stream page with fans and a link to tip or buy tickets.
  • Simulcast backup. Keep an Owncast page live alongside YouTube or Twitch in case of takedowns or outages.

Configuration

VariableRequiredDescription
OWNCAST_STREAM_KEY🔐 Auto-generatedKey your encoder uses to publish. Keep it private.
OWNCAST_ADMIN_PASSWORD🔐 Auto-generatedPassword for the admin account at /admin.
OWNCAST_SERVER_URL✅ Auto-sethttps:// plus the Railway domain. Change it when you add a custom domain.
OWNCAST_RTMP_PORT✅ Set1935, the container port the TCP proxy targets.
PORT✅ Set8080, the player, chat and admin.

Admin or variables, both work. Change the password or stream key in Owncast's admin and it sticks across redeploys. Change them in Railway's variables and the new value is applied on the next deploy. The wrapper keeps track of which side changed.

Everything else is in the admin. Video quality, latency, chat settings, page content, social links, Fediverse, webhooks and S3 storage are configured in the dashboard.

Good OBS settings. Use a keyframe interval of 2 seconds and a constant bitrate near your top output quality so segments are even and playback stays smooth.

Latency trade-off. HLS is reliable but adds some delay. Owncast's lower-latency mode trims it to a few seconds, with more risk of buffering on weak connections.


Owncast vs. Alternatives

Owncast on RailwayYouTube LiveVimeo LivestreamRestream
Monthly cost~$5–15 plus bandwidthFreePaid plansFree tier, paid plans
On your own domain✅ Yes❌ No⚠️ Embeds❌ No
Your own chat rules✅ Yes❌ Platform rules⚠️ Limited❌ Uses each platform
No ads or recommendations✅ Yes❌ No✅ Yes✅ N/A
Viewer accounts needed✅ None⚠️ To chat✅ None✅ N/A
Self-hosted✅ Yes❌ No❌ No❌ No
License✅ MIT❌ Proprietary❌ Proprietary❌ Proprietary

Dependencies for Owncast Hosting

  • Railway account. Pro is recommended if you encode several quality levels.
  • OBS Studio, Streamlabs, vMix, ffmpeg or another RTMP encoder.
  • An upload connection comfortably faster than your stream bitrate.
  • Optional: S3-compatible storage with a CDN for large audiences.

Deployment Dependencies

Implementation Details

The image is built from owncast/owncast:latest, so redeploys pick up new releases; the current one is 0.3.0. The wrapper binds Owncast to Railway's PORT, replaces the default credentials through Owncast's admin API, and stores small fingerprint files under /app/data/.railway so it knows which values you changed. Back up the volume before a major upgrade.

The TCP proxy's public RTMP port is assigned by Railway and stays the same unless you remove the proxy, so your encoder settings survive redeploys.


Frequently Asked Questions

What is Owncast? An MIT-licensed, self-hosted live streaming and chat server. You stream to it from OBS, and viewers watch and chat on your own website.

What does it cost to run? About $5–15/month on Railway for the server, plus bandwidth: roughly $0.07 per viewer-hour for a 3 Mbps stream.

How do I connect OBS? Use a custom server rtmp://HOST:PORT/live from the service's TCP proxy, and the stream key from OWNCAST_STREAM_KEY.

Do viewers need an account? No. Anyone with the link can watch and chat. You can require sign-in for chat in the admin if you want.

Can I put it on my own domain? Yes. Add the domain to the service in Railway, set OWNCAST_SERVER_URL to it and redeploy.

Is the default abc123 password used? No. The admin password and stream key are generated for each deploy and applied before the server accepts connections.


Why Deploy and Host Owncast Live Streaming 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 Owncast on Railway, you get a branded live stream page with chat on your own domain, secure from the first boot and simple to run.


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
51
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
52