Owncast is a self-hosted live video and web chat server for use with existing popular broadcasting software.
Owncast is a self-hosted live video and web chat server for use with existing popular broadcasting software.
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.
Configuring Owncast in Pterodactyl can be done by using the command line switches:
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.
Ports required to run the server in a table format.
Port | default |
---|---|
Webserver | 8090 |
RTMP | 8091 |
Name | Tag |
---|---|
ghcr.io/pterodactyl/yolks:debian | ghcr.io/pterodactyl/yolks:debian |
Name | Description | Environment Variable | Default Value | User Viewable | User Editable |
---|---|---|---|---|---|
RTMP Port | The port that is used to receive the stream data. | RTMP_PORT | 8091 | Yes | No |
Stream/Admin Key | This is used to authenticate to the web admin interface, as well as to authenticate your stream. | STREAM_KEY | Yes | Yes | |
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. | VERSION | latest | Yes | Yes |
Github Repository | Used to identify the github repository to pull the release from. | GITHUB_PACKAGE | owncast/owncast | No | No |
Github File Match | Used to identify the specific asset under a release for download. | MATCH | linux-64bit | No | No |
Github User | Required if you are doing more calls than the github anonymous API user allows. | GITHUB_USER | No | No | |
Github Oauth Token | Required if you are doing more calls than the github anonymous API user allows. | GITHUB_OAUTH_TOKEN | No | No |
#!/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 "-----------------------------------------"