At hoste Owncast på en Managed VPS betyder, at du sender din livevideo og driver dens chat fra en maskine, der er din egen, og som vores teams holder opdateret og overvåger dag og nat. Owncast er fri software under MIT-licensen. Denne guide følger den officielle dokumentation: den CPU og båndbredde, du skal regne med, installation med Docker Compose, streamnøglen, HTTPS, videokvaliteter, objektlager, chat, backup og opdateringer.
Af Simon Vasconcelos Lee
Udgivet den 14. november 2026Læsetid: 15 minutter
owncast/owncast, som leveres med ffmpeg, webport 8080 bag en reverse proxy med HTTPS og RTMP-port 1935 til dit streamingprogram.abc123.data væk fra serveren for at kunne gendanne alt, og opdatér med docker compose pull.Owncast er en selvhostet server med åben kildekode til livestreaming af video og chat for én bruger: én instans bærer kanalen for én person eller én organisation. README'en præsenterer den som en måde at drive dine egne livestreams på, i stil med de store mainstreamplatforme, mens du bevarer ejerskabet over dit indhold, din brugerflade, din moderation og dit publikum.
/hls/stream.m3u8.Owncast udgives under MIT-licensen. Den giver gratis ret til at bruge, kopiere, ændre, sammenflette, udgive, distribuere, underlicensere og sælge kopier af softwaren. Du kan altså køre den for din virksomhed, dit fællesskab eller dine kunder uden at skulle købe en licens.
Den eneste betingelse er at beholde copyrightmeddelelsen og licensteksten i alle kopier eller væsentlige dele af softwaren. Teksten leverer softwaren «som den er», uden garanti.
Dokumentationen siger det fra starten: kravene afhænger af din konfiguration. Den opstiller dog en klar regel til at vurdere dem. CPU'en transcoder videoen til de kvaliteter, du tilbyder; båndbredden leverer den til hver seer.
Dokumentationen giver to formler. Mængden for et stream i gigabyte: bitrate i kbps × varighed i sekunder × seere ÷ 8.000.000. Den maksimale udgående hastighed, der skal kunne holdes, i Mbps: bitrate i kbps × seere ÷ 1.000. Med flere kvaliteter beregner du hver af dem og lægger dem sammen. Dens skøn for et stream på to timer:
| Streamets bitrate | 10 seere | 25 seere | 50 seere |
|---|---|---|---|
| 2.000 kbps | 18 GB, 20 Mbps | 45 GB, 50 Mbps | 90 GB, 100 Mbps |
| 4.000 kbps | 36 GB, 40 Mbps | 90 GB, 100 Mbps | 180 GB, 200 Mbps |
| 6.000 kbps | 54 GB, 60 Mbps | 135 GB, 150 Mbps | 270 GB, 300 Mbps |
På en Simafri VPS har trafikken ingen månedlig måler: dine streams dimensioneres efter deres maksimale bitrate. Når dit publikum vokser, serverer objektlageret, som beskrives nedenfor, videoen i stedet for serveren.
Dokumentationen giver målte pejlemærker og bemærker, at de varierer med codec, bitrate, opløsning og encoderens forudindstilling:
| Konfiguration | CPU-belastning |
|---|---|
| Én enkelt kvalitet i passthrough, uden genkodning | Minimal |
| Én enkelt transcodet kvalitet | Let |
| To kvaliteter, høj og lav | Moderat |
| Tre kvaliteter eller kraftig komprimering | Tung |
Dokumentationen opgiver intet tal for hukommelsen, og disken betyder ikke meget: videosegmenterne skrives og fjernes igen, efterhånden som streamet skrider frem. Kun mappen data vokser over tid. På en VPS er det CPU'en, der står for kodningen: hver transcodet kvalitet dimensioneres i vCPU'er. På en Managed VPS fortæller du os om dine streams, deres bitrate, deres kvaliteter og dit publikum, og vi anbefaler den størrelse, der passer.
Før streamet når serveren, forlader det din egen forbindelse. Dokumentationen kræver en uploadhastighed på mindst 1,5 gange streamets bitrate: 7,5 Mbps for et stream på 5.000 kbps. Den anbefaler en kablet forbindelse frem for wi-fi.
Dokumentationen tilbyder imaget owncast/owncast på Docker Hub, som indeholder ffmpeg, det kodningsværktøj, Owncast har brug for. På en server, hvor Docker er installeret, opretter du en mappe og lægger denne compose.yaml i den, hentet fra dokumentationen:
services:
owncast:
image: owncast/owncast:latest
restart: unless-stopped
ports:
- "127.0.0.1:8080:8080"
- "1935:1935"
volumes:
- ./data:/app/data
docker compose up -d
127.0.0.1: det er den eneste ændring i forhold til dokumentationens eksempel, som publicerer begge porte. Dens side om reverse proxy beder dig om at holde Owncast væk fra internettet, da den som standard lytter på alle grænseflader, og Docker publicerer en port på alle serverens adresser, når der ikke angives nogen. Webgrænsefladen nås derefter kun via reverse proxyen.data opbevarer databasen og dens backups på serveren, uden for containeren: det er den, du tager backup af og flytter.latest følger den seneste version; 0.3.0 fastlåser en version.Dokumentationens anden vej er et script, der henter den seneste Owncast-version til din platform og ffmpeg, hvis det ikke allerede findes. Det installerer alt i en mappe owncast under den aktuelle mappe. Dokumentationen fraråder at køre det som root og anbefaler at læse ethvert eksternt script, før man kører det:
curl -s https://owncast.online/install.sh | bash
For at Owncast starter sammen med serveren og genstarter af sig selv efter et nedbrud, leverer dokumentationen en systemd-tjeneste, som du tilpasser til den mappe og den konto, du har valgt:
[Unit]
Description=Owncast
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/owncast
ExecStart=/opt/owncast/owncast
User=owncast
Group=owncast
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now owncast
Administrationen ligger på /admin. Owncast starter med adgangsoplysninger, som alle kender, og som dokumentationen beder dig om at ændre ved dit første login:
| Indstilling | Standardværdi | Hvad den bruges til |
|---|---|---|
| Administratorens brugernavn | admin | Login på /admin |
| Administratoradgangskode | abc123 | Login på /admin |
| Streamnøgle | abc123 | Udsendelse af streamet fra dit streamingprogram |
For at foretage denne ændring, før brugerfladen er åben for offentligheden, går du gennem en SSH-tunnel: serverens port 8080 dukker op på din computer på http://localhost:8080/admin. Tilføj -p og den SSH-port, der vises i dit kundeområde.
ssh -L 8080:127.0.0.1:8080 user@live.example.com
!@#$%^&* og ingen bindestreg nogen steder.--adminpassword, som gemmer den i databasen.Administratoradgangskoden og streamnøglen starter begge som abc123, men de er to separate indstillinger: skift dem begge.
Owncast håndterer ikke selv HTTPS. Dokumentationen placerer en reverse proxy foran den, som lytter på port 80 og 443, henter certifikatet, krypterer trafikken og videresender den i klartekst til Owncast på port 8080. Uden HTTPS markerer browserne siden som usikker, og en side, der serveres over HTTPS, kan ikke indlejre din video eller din chat.
/ws, som bærer chatten. En proxy, der blokerer den, afbryder chatten.X-Forwarded-For for at blokere IP-adressen på en bruger, der er udelukket fra chatten. Dokumentationen beder om, at proxyen selv sætter denne header.Dokumentationen foreslår Caddy, hvis du ikke har nogen anden præference: den henter selv et certifikat fra Let's Encrypt og videresender WebSocket uden ekstra indstillinger. Her er dens eksempel på en Caddyfile, hvor linjen tls angiver e-mailadressen til Let's Encrypt-kontoen:
live.example.com {
encode gzip
reverse_proxy 127.0.0.1:8080
tls contact@example.com
}
Med Nginx lægger dokumentationen vægt på WebSocket: at glemme den er det, der slår chatten fra. Tilføj denne blok map til afsnittet http i /etc/nginx/nginx.conf:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
Denne website-blok følger dokumentationens, på port 80, så Certbot kan sætte HTTPS op:
server {
listen 80;
listen [::]:80;
server_name live.example.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Authorization $http_authorization;
proxy_pass_header Authorization;
proxy_pass http://127.0.0.1:8080;
}
}
sudo nginx -t
sudo certbot --nginx
Owncast accepterer ethvert program, der sender over RTMP til en ekstern server. Nøglen accepteres kun på stien /live. I OBS:
rtmp://live.example.com:1935/live.Et program uden et felt til nøglen accepterer den fulde adresse, rtmp://live.example.com:1935/live/your-key.
På en Simafri VPS kan serverens IPv6-adresse åbne den port, du vælger: dit streamingprogram når port 1935 via denne adresse, under et navn, der bærer AAAA-recorden. På et IPv4-Docker-netværk, som her, viderestiller Docker porten på serverens IPv6-adresse til containeren. Åbn porten, hvis ufw er aktiv, og test derefter fra din computer:
sudo ufw allow 1935/tcp
nc -6 -vz live.example.com 1935
Har du andre behov, så fortæl os, hvad du har i tankerne, og vi ser på adresseringen sammen med dig.
2.| Opløsning | Billeder i sekundet | Anbefalet bitrate |
|---|---|---|
| 1920 × 1080 | 60 | 5.000 kbps |
| 1920 × 1080 | 30 | 4.500 kbps |
| 1280 × 720 | 60 | 4.000 kbps |
| 1280 × 720 | 30 | 3.000 kbps |
De kvaliteter, der tilbydes seerne, indstilles under «Configuration», «Video». Flere kvaliteter lader afspilleren vælge den, dens forbindelse kan holde til: dokumentationen anbefaler en ekstra kvalitet på 1.000 til 2.000 kbps ved siden af en høj kvalitet på 4.000 til 6.000 kbps, når din første konfiguration er testet.
Passthrough videresender den indgående video uden at genkode den: det sparer næsten al den CPU, som kvaliteten ellers kræver, og ignorerer dens indstillinger for bitrate, opløsning og billedfrekvens. Dokumentationen forbeholder den øvede brugere: seerne modtager præcis det, dit program sender, hvilket visse afspillere ikke kan afspille, og forsinkelsen stiger. Test afspilningen på de enheder, der betyder noget for dig, før du satser på den.
Forsinkelsen indstilles med forsinkelsesbufferen på samme side. Hvert niveau bytter lidt forsinkelse for stabilitet, og en ændring gælder fra næste stream:
| Niveau | Segmentlængde | Segmenter i playlisten | Omtrentlig forsinkelse |
|---|---|---|---|
| 0, laveste | 1 sekund | 25 | omkring 5 sekunder |
| 1 | 2 sekunder | 15 | omkring 8 til 9 sekunder |
| 2, standard | 3 sekunder | 10 | omkring 10 sekunder |
| 3 | 4 sekunder | 8 | omkring 15 sekunder |
| 4, højeste | 5 sekunder | 5 | omkring 18 sekunder |
Version 0.3.0 tilføjer også på seersiden afspillerens indstilling «Minimize latency», som afspiller en anelse hurtigere for at komme tættere på live, og en indstilling for automatisk afspilning, der er slået fra som standard.
Owncast kan sende sine videosegmenter til et S3-kompatibelt lager, som seerne henter dem fra. Serveren serverer stadig hovedplaylisten, API'erne og chatten; videoen, som udgør næsten hele båndbredden, kommer fra lageret. Din server sender så kun én kopi af hver kvalitet: i dokumentationens eksempel 6,5 Mbps for to kvaliteter på 5.000 og 1.500 kbps, uanset om du har nul seere eller tusind. CPU-belastningen forbliver den samme.
CORS eller Access-Control-Allow-Origin i browserens konsol kommer næsten altid derfra.Dette lager serverer livestreamet, ikke et arkiv: Owncast sletter løbende de segmenter, der er ældre end playlisten plus en buffer på omkring 20 segmenter. Bucketen rummer kun de sidste par minutter af streamet.
Til seere spredt over hele verden beskriver dokumentationen også et netværk til levering af indhold (CDN) placeret foran Owncast med et separat værtsnavn for oprindelsesserveren og indstillingen «Websocket host override», som holder chatten forbundet til oprindelsesserveren.
Chatten indstilles under «Configuration», «Chat». Som standard er der ingen moderatorer: dokumentationen foreslår, at du i det mindste gør dig selv til moderator fra administrationens side «Users».
Dokumentationen påpeger, at blokering af IP-adresser kan omgås, for eksempel med en VPN: den begrænser misbrug, og moderationen forbliver hver kanals eget arbejde. Derfor er navngivne moderatorer værdifulde ved dine mest sete streams.
Owncast tager selv backup af sin database én gang i timen til data/backup/owncastdb.bak. Flaget --backupdir ændrer denne mappe. Her er, hvad datamappen indeholder:
| Element | Hvad det rummer | Med i backuppen hver time |
|---|---|---|
owncast.db | Konfiguration, brugere, chathistorik og adgangstokens | Ja |
backup/ | Databasens backup hver time | Det er selve backuppen |
Egne emojis, public/ | De filer, du har tilføjet | Nej |
| Plugins | De installerede plugins og deres data, siden 0.3.0 | Nej |
| GeoIP-data | Hvor seerne forbinder sig fra | Nej |
For en fuld gendannelse, eller for at flytte instansen, beder dokumentationen dig om at tage backup af hele mappen data: kopieres den til en ny installation, følger alt med. Med Docker og med tjenesten stoppet:
docker compose down
tar -czf owncast-$(date +%F).tar.gz data
docker compose up -d
Planlæg denne kopi efter dine streams, og send den væk fra serveren. Lagt på dens disk indgår disse arkiver også i dens natlige backup.
En gendannelse fører databasen tilbage til tidspunktet for backuppen: alt, hvad der er ændret siden, går tabt. Kopiér først den nuværende database et sikkert sted hen, og derefter:
--restoreDatabase og stien til backupfilen: den gendanner databasen og lukker derefter.docker compose stop
docker compose run --rm owncast --restoreDatabase data/backup/owncastdb.bak
docker compose up -d
Med Docker giver dokumentationen to kommandoer, der køres fra mappen med compose.yaml. Datamappen bliver, hvor den er:
docker compose pull
docker compose up -d
Med installationsprogrammet beskriver noterne til version 0.3.0 opdateringen: stop tjenesten, læg de filer i webgrænsefladen, du har tilpasset, til side, kør installationsprogrammet igen med den konto, der kører Owncast, og genstart derefter. Scriptet gemmer selv et arkiv af mappen data i owncast-install-backups, før det erstatter versionen.
sudo systemctl stop owncast
su -c "curl https://owncast.online/install.sh | bash" owncast
sudo systemctl start owncast
Version 0.3.0, udgivet den 3. september 2026, bringer plugins, Featured Streams, automatisk afspilning og valget af den grænseflade, RTMP lytter på. Dens noter beder dig om at læse ændringerne før opdateringen, da de berører din instans: følg disse noter ved hver version, og kopiér mappen data lige før.
Selvhosting kræver, at du holder serveren ud over selve applikationen. På en Managed VPS tager vores teams sig af serveren og følger din instans proaktivt; Owncast forbliver din software, med dens indstillinger og data.
| Emne | Vores teams | Dig |
|---|---|---|
| Serveren | Opdateringer af system og sikkerhed, indgreb på serveren inkluderet | Det tidspunkt, der passer til din drift |
| Overvågningen | Serveren følges døgnet rundt, alle ugens dage, med indgreb uden at vente på dit opkald | Gennemlæsning af din instans' logfiler |
| Owncast | Proaktiv opfølgning: fejl, langsomme svartider, CPU-belastning og diskplads opdages, og en rettelse anbefales | Installation, opdateringer og indstillinger, som du gennemfører, selv eller med din AI-assistent |
| Streams og chat | Den server, der bærer dem, overvåget og sikkerhedskopieret | Streamnøglerne, videokvaliteterne, moderatorerne og chattens regler |
| Backup | Hver nat, krypteret og opbevaret uden for maskinen; gendannelse inkluderet | De kopier, der er specifikke for Owncast, og anmodningen om gendannelse, når du får brug for den |
| Migreringen | Din nuværende server flyttes, uden beregning | Tidspunktet for omlægningen |
Hvis du foretrækker, at vores teams griber ind i selve applikationen, faktureres den ydelse pr. time eller som fast pris, med et overslag oplyst før indgrebet.
Med en Managed VPS fra Simafri holder vores teams serveren bag din Owncast-instans opdateret, overvåger den dag og nat og griber ind uden at vente på dit opkald; de følger også din instans proaktivt og anbefaler dig de nyttige rettelser, som du gennemfører, selv eller med din AI-assistent. Backup krypteres hver nat og opbevares uden for maskinen, gendannelsen er inkluderet, og migreringen af din nuværende server sker uden beregning.
Ja. Owncast er under MIT-licensen: du kan bruge, ændre og videredistribuere den i din virksomhed uden at skulle købe en licens, så længe du beholder dens copyrightmeddelelse. Tilbage er udgiften til den server, der kører den.
Det afhænger af de kvaliteter, du tilbyder. Som en grov tommelfingerregel regner dokumentationen med én kerne pr. transcodet kvalitet ved 30 billeder i sekundet og næsten intet for en kvalitet i passthrough. Antallet af seere ændrer ikke CPU-belastningen.
Den maksimale hastighed er streamets bitrate gange antallet af seere: 25 seere ved 5.000 kbps kræver 125 Mbps udgående. Et S3-kompatibelt objektlager kan servere videoen i stedet for serveren, som så kun sender én kopi af hver kvalitet.
Opret en compose.yaml med imaget owncast/owncast, port 8080 publiceret på 127.0.0.1, port 1935 til RTMP og en datamappe monteret på /app/data, og kør derefter docker compose up -d. Sæt så en reverse proxy med HTTPS foran port 8080.
Administrationen på /admin åbner med brugernavnet admin og adgangskoden abc123, og streamnøglen er også abc123. Det er to separate indstillinger: skift dem begge ved dit første login under Configuration, Server Setup.
I OBS vælger du en tilpasset tjeneste og indtaster rtmp://your-server:1935/live og din streamnøgle. Send video i H.264 og lyd i AAC med en keyframe hvert 2. sekund.
Owncast tager backup af sin database hver time til data/backup/owncastdb.bak. Den backup dækker kun databasen: for en fuld gendannelse kopierer du hele mappen data væk fra serveren. Gendannelse sker med flaget --restoreDatabase.
En Managed VPS dækker serveren: system, sikkerhed, overvågning og backup. Vores teams følger også din instans proaktivt og anbefaler dig de nyttige rettelser, som du gennemfører. Et indgreb i selve applikationen faktureres pr. time eller som fast pris.
Simafri
Lad os tale om din hjemmeside
Fortæl os om dit projekt med få ord: vi vender hurtigt tilbage til dig.
Tak! Din forespørgsel er sendt. Vi vender tilbage til dig hurtigst muligt.
Foretrækker du e-mail? Skriv til os på support@simafri.com.