Muse

applications
Report Issue

๐ŸŽง a self-hosted midwestern Discord music bot that doesn't suck

Contributors:
README

Muse

Authors / Contributors

Their Github

Muse is a highly-opinionated midwestern self-hosted Discord music bot that doesn't suck.

Server Ports

There are no ports required for the Muse bot

Docker Images (1)
Name Image
ghcr.io/ptero-eggs/yolks:nodejs_20 ghcr.io/ptero-eggs/yolks:nodejs_20
Startup Command
npm start
Variables (6)

TOKEN

Discord Bot Token

Environment:
discord_token
Default:
None
User Viewable:
โŒ
User Editable:
โŒ
Rules:
required|string

Data directory

Default: ./data

Environment:
data_dir
Default:
./data
User Viewable:
โŒ
User Editable:
โŒ
Rules:
required|string|max:20

YouTube API Key

You can get it here: https://console.developers.google.com/

Environment:
api_key
Default:
None
User Viewable:
โŒ
User Editable:
โŒ
Rules:
required|string

Spotify Client ID

You can get it here: https://developer.spotify.com/dashboard/applications

Environment:
client_id
Default:
None
User Viewable:
โŒ
User Editable:
โŒ
Rules:
required|string

Spotify Client Secret

You can get it here: https://developer.spotify.com/dashboard/applications

Environment:
client_secret
Default:
None
User Viewable:
โŒ
User Editable:
โŒ
Rules:
required|string

Version

Specify a version, for example: "v2.4.1" For the latest version, type "latest"

Environment:
VERSION
Default:
latest
User Viewable:
โŒ
User Editable:
โŒ
Rules:
required|string
Installation Script
Container: node:lts-bookworm-slim
Entrypoint: bash
## Credits: Red-Thirten (https://github.com/lilkingjr1) for providing most of the installation script
apt-get update
apt-get install git curl jq -y python3 python3-pip make build-essential -qq

GITHUB_PACKAGE="museofficial/muse"

# Find GitHub download URL for Muse for specified version
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 -r '.tarball_url')
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) | .tarball_url')
    else
        echo -e "Could not find version \"${VERSION}\" of Muse. Defaulting to latest release..."
        DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')
    fi
fi

# Download Muse from GitHub & Extract
cd /mnt/server
echo -e "Downloading Muse from GitHub..."
curl -L ${DOWNLOAD_URL} -o muse.tar.gz
echo -e "Extracting Muse from tarball..."
tar -xvzf muse.tar.gz --strip-components=1
rm muse.tar.gz

# Verify and clean up Muse installation
if [ ! -f .env.example ]; then
    echo -e "\nFailed to download release: ${DOWNLOAD_URL}\n"
    exit 1
fi
cp .env.example .env
rm -rf .dockerignore Dockerfile .gitignore .github/
yarn install --prod #--frozen-lockfile
#sed -i 's/of filterWrapper[)]/of filterWrapper|| [])/g' /mnt/server/node_modules/ytsr/lib/utils.js

echo -e "\nMuse Successfully Installed!"