---
title: "How to self-host Owncast in 2026: its Compose file, one command, HTTPS and RTMP | Pethost"
description: "Self-host Owncast with the Docker Compose file from its docs: run pethost deploy, get a page with HTTPS, an open RTMP port and backups for €9.99 a month."
---

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

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

By the Pethost team · 11 October 2026 · 8 min read

You want Owncast, the live video and chat server you run yourself, at an address with HTTPS, with a port your streaming software can reach, and without setting up a proxy or certificates. Owncast's docs give a Docker Compose file, and on Pethost a Compose file is a project. Save it as it is and run `pethost deploy`. Owncast started in 10 seconds, its page at an address the deploy gave by itself and its RTMP port open for OBS.

**In short**

- **The file is Owncast's own:** the `docker-compose.yml` of its “Use a container image” page, nine lines, unchanged.
- **One command:** `pethost deploy`. The machine finds the web port the file publishes, 8080, and serves it at `https://owncast.yourname.pethost.app`.
- **The stream goes in over RTMP:** port 1935, which the file publishes too, is opened as written. Point OBS at `rtmp://owncast.yourname.pethost.app:1935/live`.
- **The data stays:** the folder the file binds, `./data`, is kept as a volume of the project that the nightly backup includes. A new version of Owncast is one changed tag and one deploy.
- **The price:** €9.99 a month for a machine of 2 vCPU, 3 GB and 30 GB. Owncast took 128 MB of its memory. There is no free tier.

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

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

**The file** is on the page “Use a container image” of Owncast's docs. Make a folder, whose name becomes the project's name, and save the file there as `docker-compose.yml`:

```
services:
  owncast:
    image: owncast/owncast:latest
    restart: unless-stopped
    ports:
      - "8080:8080"
      - "1935:1935"
    volumes:
      - ./data:/app/data
```

**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 Owncast with pethost deploy

Nothing in the file is changed. Run `pethost deploy` in the folder. This is the whole screen:

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

✓ Packed 1 file, 172 B
✓ Uploaded straight to your machine
✓ Started in 10 s
  · deployed docker-compose.yml as compose.yaml
✓ owncast listens on 8080 → https://owncast.sam.pethost.app
  It answers 200.

https://owncast.sam.pethost.app

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

The file publishes two ports, and the machine asked each what it is. Port 8080 answered in HTTP, so it got the project's address: it is served there over HTTPS and is not opened on the machine beside it. Port 1935 is RTMP and no web port, so it is opened on the machine as the file says, for your streaming software. This is the project after the deploy:

```
$ pethost
owncast · https://owncast.sam.pethost.app
owncast	running	since 2026-10-13T15:42:56Z	listens on 1935, 8080	memory 128 MB
1 service runs · last deploy succeeded 2026-10-13T15:42:57Z
```

Open the address: it is Owncast's page, with the player, the chat and “offline” until a stream comes.

## Sign in to the Owncast admin and change the defaults

The admin is at `/admin` of the address. A new Owncast lets you in with the name `admin` and the password `abc123`, and takes a stream with the same `abc123` as its key. Both are in Owncast's docs for everyone to read, and your server is on the internet from its first second, so change them before anything else: the admin password and the stream key are under **Configuration > Server Setup**.

Without the password the admin answers nothing: a request to its API got 401 from our deploy. While you are there, give the server its name and its address under **Configuration > General**. The name we set stayed through a restart and through an update.

To use a name of your own, such as `live.example.com`, run `pethost domain add live.example.com owncast:8080`. 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.

## Send your stream to Owncast from OBS

Every name under your account's domain is your machine, and port 1935 is open on it. So the server your software streams to has the project's own name. In OBS, open **Settings > Stream**, choose the service **Custom**, and enter:

```
Server      rtmp://owncast.sam.pethost.app:1935/live
Stream Key  the key you set in the admin
```

We sent a test stream to that port with ffmpeg. Owncast's status went to online, and the stream's playlist, `/hls/stream.m3u8`, answered at the address over HTTPS, which is what the player on the page reads. With the stream running Owncast took 163 MB of memory.

The viewers come over HTTPS on the address and never touch port 1935. The port is open only while the project is there: before the deploy, the machine refused a connection to it.

## Where the Owncast data is, and how it is backed up

Owncast keeps its database, its settings and the stream's segments in one folder, `/app/data`, and the file binds `./data` to it. On Pethost a folder a Compose file binds for writing is kept as a volume of the project, named after the folder. The machine keeps it through restarts and deploys, and the nightly backup includes it:

```
$ pethost volume
owncast (.pethost)
data	5.1 MB	owncast:/app/data	backed up 2026-10-13T15:46:48Z
```

`pethost backup` lists the snapshots, and `pethost backup restore` puts one back. To take the folder to another server one day, as Owncast's docs suggest, `pethost cp` copies a folder out of the volume as one archive.

## Update Owncast to a new version

The file's tag is `latest`. Owncast's docs update it by pulling the image and making the container again, and here that is one command: `pethost restart --pull`. To choose the moment of an update yourself, name a release in the file and deploy again. We went from 0.2.5 to 0.3.0 this way:

```
image: owncast/owncast:0.3.0
```

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

The address stayed, and so did the settings: the server's name was the one we had set. Take a snapshot with `pethost backup now` before a large update: a rollback puts the earlier Compose file back, and a volume's data is not part of a version.

## 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. Owncast took 128 MB of that memory at rest, so the same machine has room for your other projects, such as an [Umami](https://pethost.dev/blog/self-host-umami/) for your site or an [RSSHub](https://pethost.dev/blog/self-host-rsshub/) beside it. There is [no fee per project](https://pethost.dev/blog/unlimited-projects-flat-monthly-fee/), and the price is [the same every month](https://pethost.dev/blog/paas-without-usage-based-billing/).

- **€9.99** a month for the whole machine
- **10 s** to pull and start Owncast
- **128 MB** of memory at rest

What is already done on it: HTTPS with certificates that renew themselves, nightly backups kept for 14 days, SSH into any container, and a Compose project that [runs from its own file](https://pethost.dev/blog/managed-docker-compose-hosting/). The machine is in the EU and always on, so a stream can start at any hour and the page [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.

**What each project takes.** The capacity page: every project with its memory, CPU and disk.

![The Pethost panel's capacity page: each project with its memory, CPU and disk.](https://pethost.dev/shots/capacity.webp)

### Pethost is the best pick for

- **Streamers who want their own page**, with their own chat and no platform between them and their viewers
- **Communities and meetups** that stream now and then and keep the server for everything else
- **Solo developers** with several small apps and one bill to pay
- **People whose agent deploys for them**: Claude Code or Codex deploys the Compose file and reads its logs

### Look elsewhere if

- You stream to a large audience at several qualities at once: encoding video wants more cores, or a GPU, which a virtual machine has none of

## Questions

### Can I self-host Owncast with Docker Compose without a server to manage?

Yes. On Pethost the Compose file of Owncast's docs is the project: save it and run `pethost deploy`. The deploy gives Owncast an address with HTTPS by itself, and the proxy and the backups are already there.

### Does the RTMP port work on Pethost?

Yes. A port a Compose file publishes that does not answer HTTP is opened on the machine as written. Owncast's 1935 is one, so OBS streams to `rtmp://owncast.yourname.pethost.app:1935/live`. We sent a test stream there, and the page showed it.

### Do I need a reverse proxy or a certificate for Owncast?

No. The machine serves the web port the file publishes, 8080, at the project's address over HTTPS, with a certificate that renews itself. Nothing is added to the file for it.

### Where does Owncast keep its data on Pethost?

In `/app/data`, which the file binds to `./data`. The machine keeps that folder as a volume of the project, named `data`, through restarts and deploys, and the nightly backup includes it.

### How do I update self-hosted Owncast?

Run `pethost restart --pull` to get the newest `latest` image, or name a release in the file and run `pethost deploy`. The settings stay: we went from 0.2.5 to 0.3.0 and the server kept its name.

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

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

The screens are deploys of the Compose file in Owncast's docs, with Owncast 0.3.0 and pethost 0.2.4, on a test machine of ours. The account in them is the example one, `sam`.

1. [Owncast: use a container image](https://owncast.online/docs/getting-started/install/container/)
2. [Owncast: broadcasting with OBS](https://owncast.online/docs/broadcasting/obs/)
3. [Owncast: configuration](https://owncast.online/docs/configuration/)
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 deploy a Gin app in 2026: one command, HTTPS and a Dockerfile you keep](https://pethost.dev/blog/deploy-gin-app/) Deploy a Go Gin app with one command: pethost deploy writes the Dockerfile, builds the program and serves it over HTTPS, on a machine that is €9.99 a month.
- 10 October 2026 [How to deploy a Go Fiber app in 2026: one command, HTTPS and a Dockerfile you keep](https://pethost.dev/blog/deploy-fiber-app/) Deploy a Go Fiber app with one command: pethost deploy writes the Dockerfile, builds it in 45 seconds and serves it over HTTPS, for €9.99 a month.
- 10 October 2026 [How to deploy a Nuxt app in 2026: one command, a Node server and HTTPS](https://pethost.dev/blog/deploy-nuxt-app/) Deploy a Nuxt 4 app with one command: pethost deploy writes the Dockerfile, runs nuxt build and starts the Node server over HTTPS, for €9.99 a month.
- 10 October 2026 [How to deploy a React Router app in 2026: the template's Dockerfile, one command and HTTPS](https://pethost.dev/blog/deploy-react-router-app/) Deploy a React Router app with server rendering: pethost deploy builds the template's own Dockerfile and serves it over HTTPS in 11 seconds, for €9.99 a month.

[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)
