Lavalink
A standalone audio sending node based on Lavaplayer and Koe. Allows for sending audio without it ever reaching any of your shards. Description taken from https://github.com/lavalink-devs/Lavalink
Ports
Add an allocation on the node for each port.
- Lavalink 2333
Install
- Installer image
- debian:bookworm-slim
- Install script
- 47 lines
Image
- Java 21 ghcr.io/ptero-eggs/yolks:java_21
Startup
The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.
3 variables
Startup command
java -jar Lavalink.jarVERSIONUsers can edit
required|string
GITHUB_PACKAGEUsers cannot see
required|string
MATCHUsers cannot see
required|string
Wings
- Stop command
- ^^C
- Running when the console shows
- Started Launcher in
Files Wings edits
Wings sets these values in these files before each start.
application.yml yml
- server.address
- 0.0.0.0
- server.port
- {{server.build.default.port}}
Readme
Lavalink Server
From their Github
Standalone audio sending node based on Lavaplayer and JDA-Audio. Allows for sending audio without it ever reaching any of your shards.
Server Ports
Ports required to run the server in a table format.
| Port | default |
|---|---|
| Lavalink | 2333 |
Mods/Plugins may require ports to be added to the server
Changes
- add lavalink
· Red Banana · 71d6ba0
- Delete lavalink/egg-lavalink.json
· Red Banana · a1b1646
- Add lavalink
· Red Banana · ca879b3
Problem with this egg?
Open an issue on GitHub. Include your Panel and Wings versions.
Install script 47 lines bash in debian:bookworm-slim Show Hide
## this is a simple script to use the github API for release versions.
## this requires the egg has a variable for GITHUB_PACKAGE, VERSION and MATCH (match is to match the filename in some way)
## this supports using oauth/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.)
## if you are getting hit with GitHub API limit issues then you need to have the user and token set.
apt update
apt install -y curl jq git
cd /mnt/server
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
if [ ! -z "${DOWNLOAD_URL}" ]; then
if curl --output /dev/null --silent --head --fail ${DOWNLOAD_URL}; then
echo -e "link is valid. setting download link to ${DOWNLOAD_URL}"
DOWNLOAD_LINK=${DOWNLOAD_URL}
else
echo -e "link is invalid closing out"
exit 2
fi
fi
curl -L -o Lavalink.jar ${DOWNLOAD_URL}
curl -L -o application.yml https://raw.githubusercontent.com/freyacodes/Lavalink/master/LavalinkServer/application.yml.example
echo "-------------------------------------------------------"
echo "Installation completed"
echo "-------------------------------------------------------"