owncast.online

applications
Report Issue

Owncast is a self-hosted live video and web chat server for use with existing popular broadcasting software.

Contributors:
README

Owncast

From the Owncast website

Owncast is a self-hosted live video and web chat server for use with existing popular broadcasting software.

Installation

Follow the common egg installation guide to install the egg on your Pterodactyl instance. When setting up a server, the version set in the varaible will be used, default is 0.0.11.

Configuration

Configuring Owncast in Pterodactyl can be done by using the command line switches:

  • -backupdir string
    • Directory where backups will be written to
  • -database string
    • Path to the database file.
  • -enableDebugFeatures
    • Enable additional debugging options.
  • -enableVerboseLogging
    • Enable additional logging.
  • -logdir string
    • Directory where logs will be written to
  • -restoreDatabase string
    • Restore an Owncast database backup
  • -rtmpport int
    • Set listen port for the RTMP server
  • -streamkey string
    • Set your stream key/admin password
  • -webserverip string
    • Force web server to listen on this IP address
  • -webserverport string
    • Force the web server to listen on a specific port

Update support

The egg should keep the data folder when reinstalling, to prevent destroying the configuration by accident.

If you want to reset the server completly, remove the data directory manually before reinstalling.

Server Ports

Ports required to run the server in a table format.

Port default
Webserver 8090
RTMP 8091
Docker Images (1)
Name Image
ghcr.io/pterodactyl/yolks:debian ghcr.io/pterodactyl/yolks:debian
Startup Command
./owncast -webserverport {{SERVER_PORT}} -rtmpport {{RTMP_PORT}} -streamkey {{STREAM_KEY}}
Variables (7)

RTMP Port

The port that is used to receive the stream data.

Environment:
RTMP_PORT
Default:
8091
User Viewable:
User Editable:
Rules:
required|integer

Stream/Admin Key

This is used to authenticate to the web admin interface, as well as to authenticate your stream.

Environment:
STREAM_KEY
Default:
None
User Viewable:
User Editable:
Rules:
required|string|min:32|max:128

Owncast Version

The version of Owncast that you would like to install, from https://github.com/owncast/owncast/releases As an Example - "v0.0.11" for a specific version or "latest" for the most up to date version.

Environment:
VERSION
Default:
latest
User Viewable:
User Editable:
Rules:
required|string|max:20

Github Repository

Used to identify the github repository to pull the release from.

Environment:
GITHUB_PACKAGE
Default:
owncast/owncast
User Viewable:
User Editable:
Rules:
required|string|max:120

Github File Match

Used to identify the specific asset under a release for download.

Environment:
MATCH
Default:
linux-64bit
User Viewable:
User Editable:
Rules:
required|string|max:20

Github User

Required if you are doing more calls than the github anonymous API user allows.

Environment:
GITHUB_USER
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:20

Github Oauth Token

Required if you are doing more calls than the github anonymous API user allows.

Environment:
GITHUB_OAUTH_TOKEN
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:128
Installation Script
Container: ghcr.io/ptero-eggs/installers:debian
Entrypoint: bash
#!/bin/bash

#Make Server Dir
if [ ! -d /mnt/server/ ]; then
    mkdir /mnt/server/
fi
cd /mnt/server/

#Get Dependencies
apt-get -y update
apt-get -y install curl unzip tar jq

#Get Owncast Install Files

if [ -z "${GITHUB_USER}" ] && [ -z "${GITHUB_OAUTH_TOKEN}" ] ; then
    echo -e "using anon api call"
else
    echo -e "user and oauth token set"
    alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '
fi

## get release info and download links
LATEST_JSON=$(curl --silent "https://api.github.com/repos/${GITHUB_PACKAGE}/releases/latest")
RELEASES=$(curl --silent "https://api.github.com/repos/${GITHUB_PACKAGE}/releases")

if [ -z "${VERSION}" ] || [ "${VERSION}" == "latest" ]; then
    DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})
else
    VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .tag_name')
    if [ "${VERSION}" == "${VERSION_CHECK}" ]; then
        DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})
    else
        echo -e "defaulting to latest release"
        DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)
    fi
fi

echo Download URL is: ${DOWNLOAD_URL}

curl -L ${DOWNLOAD_URL} --output ./owncast_installer.zip

#curl -L https://github.com/owncast/owncast/releases/download/v${OWNCAST_VERSION}/owncast-${OWNCAST_VERSION}-linux-64bit.zip --output ./owncast_installer.zip

#Unzip Install Files
unzip -o -q ./owncast_installer.zip
rm ./owncast_installer.zip

## install end
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"