{"meta":{"slug":"pterodactyl-muse","name":"Pterodactyl Muse","category":"discord","source":"pelican","owner":"pelican-eggs","repo":"chatbots","branch":"main","path":"discord/muse/egg-pterodactyl-muse.json","rawUrl":"https://raw.githubusercontent.com/pelican-eggs/chatbots/main/discord/muse/egg-pterodactyl-muse.json","indexedAt":1792246788483},"egg":{"_comment":"DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PELICAN PANEL - PELICAN.DEV","meta":{"version":"PTDL_v2","update_url":null},"exported_at":"2025-06-25T15:25:55-07:00","name":"Muse","author":"red_thirten@yahoo.com","description":"Muse is a self-hosted Discord music bot that is made for small to medium-sized Discord servers/guilds.","features":null,"docker_images":{"ghcr.io/parkervcp/yolks:nodejs_22":"ghcr.io/parkervcp/yolks:nodejs_22"},"file_denylist":[],"startup":"yarn start","config":{"files":"{\r\n    \".env\": {\r\n        \"parser\": \"file\",\r\n        \"find\": {\r\n            \"DISCORD_TOKEN\": \"DISCORD_TOKEN={{server.build.env.BOT_TOKEN}}\",\r\n            \"YOUTUBE_API_KEY\": \"YOUTUBE_API_KEY={{server.build.env.YOUTUBE_API_KEY}}\",\r\n            \"SPOTIFY_CLIENT_ID\": \"SPOTIFY_CLIENT_ID= {{server.build.env.SPOTIFY_CLIENT_ID}}\",\r\n            \"SPOTIFY_CLIENT_SECRET\": \"SPOTIFY_CLIENT_ID= {{server.build.env.SPOTIFY_CLIENT_SECRET}}\"\r\n        }\r\n    }\r\n}","startup":"{\r\n    \"done\": \"Ready!\"\r\n}","logs":"{}","stop":"^C"},"scripts":{"installation":{"script":"#!/bin/bash\r\n\r\n## File: Pterodactyl Muse Egg - egg-muse.json\r\n## Authors: David Wolfe (Red-Thirten), TubaApollo, parkervcp\r\n## Date: 2025/06/25\r\n## License: MIT License\r\n\r\nGITHUB_PACKAGE=\"museofficial/muse\"\r\n\r\napt update\r\napt install -y tar curl jq python3 build-essential\r\n\r\n## Muse Install\r\n[ ! -d /mnt/server ] && mkdir /mnt/server\r\ncd /mnt/server\r\necho -e \"\\nInstalling/Updating Muse...\\n\"\r\n\r\n# Remove all existing files/folders, except `data` folder\r\nfind . -mindepth 1 -depth ! -path './data' ! -path './data/*' -exec rm -rf {} +\r\n\r\n# Get download URL\r\nLATEST_JSON=$(curl --silent \"https://api.github.com/repos/${GITHUB_PACKAGE}/releases/latest\")\r\nRELEASES=$(curl --silent \"https://api.github.com/repos/${GITHUB_PACKAGE}/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n    DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r .tarball_url)\r\nelse\r\n    VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n    if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n        DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tarball_url')\r\n    else\r\n        echo -e \"Defaulting to latest release...\"\r\n        DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r .tarball_url)\r\n    fi\r\nfi\r\n\r\n# Download tarball & check for success\r\necho -e \"Downloading ${VERSION} from ${DOWNLOAD_URL}...\"\r\ncurl -Lo muse-${VERSION}.tar.gz ${DOWNLOAD_URL}\r\nif [[ ! -f muse-${VERSION}.tar.gz ]]; then\r\n    echo -e \"\\n\\nFailed to download ${VERSION} version of Muse!\"\r\n    echo -e \"\\tTry reinstalling the server again.\\n\"\r\n    exit 1\r\nfi\r\n\r\n# Extract & delete tarball\r\necho -e \"Extracting muse-${VERSION}.tar.gz...\"\r\ntar -xzvf muse-${VERSION}.tar.gz --strip-components=1\r\nrm muse-${VERSION}.tar.gz\r\n\r\n# Install dependencies & clean up\r\necho -e \"Installing dependencies...\"\r\nyarn install --prod || exit 1\r\ncp .env.example .env\r\necho -e \"Removing unneeded files...\"\r\nrm -rf .dockerignore Dockerfile .gitignore .github/ RELEASING.md\r\n\r\necho -e \"\\nMuse successfully installed!\"","container":"node:lts-bookworm-slim","entrypoint":"/bin/bash"}},"variables":[{"name":"Discord Bot Token","description":"The token for your Discord bot. Learn how to obtain a token and configure your bot application properly here: https://jmusicbot.com/getting-a-bot-token/","env_variable":"DISCORD_TOKEN","default_value":"","user_viewable":true,"user_editable":true,"rules":"required|string","field_type":"text"},{"name":"YouTube API Key","description":"Can be acquired by creating a new project in Google's Developer Console (https://console.developers.google.com/), enabling the YouTube API, and creating an API key under credentials.","env_variable":"YOUTUBE_API_KEY","default_value":"","user_viewable":true,"user_editable":true,"rules":"required|string","field_type":"text"},{"name":"Spotify Client ID","description":"Can be acquired at https://developer.spotify.com/dashboard/applications with 'Create a Client ID'.","env_variable":"SPOTIFY_CLIENT_ID","default_value":"","user_viewable":true,"user_editable":true,"rules":"required|string","field_type":"text"},{"name":"Spotify Client Secret","description":"Can be acquired at https://developer.spotify.com/dashboard/applications with 'Create a Client ID'.","env_variable":"SPOTIFY_CLIENT_SECRET","default_value":"","user_viewable":true,"user_editable":true,"rules":"required|string","field_type":"text"},{"name":"[Advanced] Release Version Tag","description":"Which release (based on tag) to download from https://github.com/museofficial/muse/releases. To download the latest release version, \"latest\" can be used.","env_variable":"VERSION","default_value":"latest","user_viewable":true,"user_editable":true,"rules":"required|string","field_type":"text"},{"name":"[System] Force Headless Environment","description":"This should not be changed. It is used by the Egg to tell Ora (a dependency of Muse) that it is running in a Continuous Integration-like environment (ie. headless), which disables loading spinners that break the console output.","env_variable":"CI","default_value":"true","user_viewable":false,"user_editable":false,"rules":"required|string|in:true","field_type":"text"}]},"readme":"# Muse\n\n### Authors / Contributors\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n    <tr>\n        <td align=\"center\">\n            <a href=\"https://github.com/TubaApollo\">\n                <img src=\"https://avatars.githubusercontent.com/u/86665265\" width=\"50px;\" alt=\"\"/><br /><sub><b>TubaApollo</b></sub>\n            </a>\n            <br />\n            <a href=\"https://github.com/pelican-eggs/chatbots/commits?author=TubaApollo\" title=\"Codes\">💻</a>\n            <a href=\"https://github.com/pelican-eggs/chatbots/commits?author=TubaApollo\" title=\"Contributor\">💡</a>\n        </td>\n        <td align=\"center\">\n            <a href=\"https://github.com/redthirten\">\n                <img src=\"https://avatars.githubusercontent.com/u/4533989\" width=\"50px;\" alt=\"\"/><br /><sub><b>Red-Thirten</b></sub>\n            </a>\n            <br />\n            <a href=\"https://github.com/pelican-eggs/chatbots/commits?author=redthirten\" title=\"Codes\">💻</a>\n            <a href=\"https://github.com/pelican-eggs/chatbots/commits?author=redthirten\" title=\"Maintains\">🔨</a>\n        </td>\n        <td align=\"center\">\n            <a href=\"https://github.com/QuintenQVD0\">\n                <img src=\"https://avatars.githubusercontent.com/u/67589015\" width=\"50px;\" alt=\"\"/><br /><sub><b>QuintenQVD0</b></sub>\n            </a>\n            <br />\n            <a href=\"https://github.com/pelican-eggs/chatbots/commits?author=QuintenQVD0\" title=\"Codes\">💻</a>\n            <a href=\"https://github.com/pelican-eggs/chatbots/commits?author=QuintenQVD0\" title=\"Contributor\">💡</a>\n        </td>        \n    </tr>\n</table>\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n___\n\n### Game Description\n\nFrom Muse's [Github](https://github.com/codetheweb/muse):\n\n> Muse is a highly-opinionated midwestern self-hosted Discord music bot that doesn't suck. It's made for small to medium-sized Discord servers/guilds (think about a group the size of you, your friends, and your friend's friends).\n\n___\n\n### Server Ports\n\nThere are no ports required for the Muse bot. If one must be assigned, a random one can be used.\n"}