Add files via upload
This commit is contained in:
commit
8ccb5d7982
1 changed files with 182 additions and 0 deletions
182
install.sh
Normal file
182
install.sh
Normal file
|
|
@ -0,0 +1,182 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
echo -e "\e[32m
|
||||||
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
||||||
|
# Lavalink Installation Script #
|
||||||
|
# Created and maintained by Josh S. #
|
||||||
|
# Author Josh S. | https://joshsevero.dev #
|
||||||
|
# This Script only works on Ubuntu & Debian #
|
||||||
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # #\e[0m"
|
||||||
|
|
||||||
|
# Check if user is sudo
|
||||||
|
if [[ $EUITD -ne 0 ]]; then
|
||||||
|
echo -e "\e{32m* This script must be executed via sudo user. \e[0m" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Proceed?
|
||||||
|
while true; do
|
||||||
|
RESET="\e[0m"
|
||||||
|
GREEN="\e[32m"
|
||||||
|
read -p "$(echo -e $GREEN\n* Do you want to proceed? (Y/N)"$RESET"yn
|
||||||
|
case $yn in
|
||||||
|
[yY] ) echo -e "\e[32m* Confirmed. Continuing..\e[0m";
|
||||||
|
break;;
|
||||||
|
[nN] ) echo -e "\e[32m* Confirmed. Exiting Installation..\e[0m";
|
||||||
|
exit;;
|
||||||
|
* ) echo -e "\3[32m* Invalid Response.\3[0m";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
exho -e "\e[32m* Installing dependencies..\3[0m"
|
||||||
|
sudo apt update > /dev/null 2>&1
|
||||||
|
|
||||||
|
# Install Curl
|
||||||
|
if ! [ -x "$(command -v curl)" ]; then
|
||||||
|
echo -e "\e[32m* Installing curl.\e[0m"
|
||||||
|
sudo apt install -y curl > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install NodeJS
|
||||||
|
if ! [ -x "$(command -v node)" ]; then
|
||||||
|
echo -e "\e[32m* Installing NodeJS\e[0m"
|
||||||
|
echo -e "\e[32m* Which NodeJS version would you like to install? []\e[0m"
|
||||||
|
read NodeJSVer
|
||||||
|
if [[ -n "NodeJSVer" ]]
|
||||||
|
then
|
||||||
|
in=$NodeJSVer
|
||||||
|
fi
|
||||||
|
echo -e "\e[32m* Installing NodeJS: $in \e[0m"
|
||||||
|
curl -sL https://deb.nodesource.com/setup_$in.x | sudo -E bash - > /dev/null 2>&1 && sudo apt install -y nodejs > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install NPM
|
||||||
|
if ! [ -x "$(command -v npm)" ]; then
|
||||||
|
echo -e "\e[32m* Installing NPM.\e[0m"
|
||||||
|
sudo apt install -y npm > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install Wget
|
||||||
|
if ! [ -x "$(command -v wget)" ]; then
|
||||||
|
echo -e "\e[32m* Installing wget.\e[0m"
|
||||||
|
sudo apt install -y wget > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install Java
|
||||||
|
if ! [ -x "$(command -v javac)" ]; then
|
||||||
|
echo -e "\e[32m* Installing java.\e[0m"
|
||||||
|
sudo apt install -y default-jdk > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install Pm2
|
||||||
|
if ! [ -x "$(command -v pm2)" ]; then
|
||||||
|
echo -e "\e[32m* Installing pm2.\e[0m"
|
||||||
|
sudo npm install pm2 -g > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install Lavalink
|
||||||
|
echo -e "\e[32m* Starting Lavalink Installation\e[0m"
|
||||||
|
mkdir ~/Lavalink && cd ~/Lavalink
|
||||||
|
wget https://github.com/Cog-Creators/Lavalink-Jars/releases/latest/download/Lavalink.jar > /dev/null 2>&1
|
||||||
|
echo "What port do you want your Lavalink to run on?"
|
||||||
|
read Lava_Port
|
||||||
|
echo "What password do you want to set for your Lavalink?"
|
||||||
|
read Lava_Pass
|
||||||
|
echo "
|
||||||
|
server: # REST and WS server
|
||||||
|
port: $Lava_Port
|
||||||
|
address: 0.0.0.0
|
||||||
|
|
||||||
|
lavalink:
|
||||||
|
server:
|
||||||
|
password: \"$Lava_Pass\"
|
||||||
|
playerUpdateInterval: 5 # How frequently to send player updates to clients, in seconds
|
||||||
|
statsTaskInterval: 30 # How frequently to send the node stats to clients, in seconds
|
||||||
|
koe:
|
||||||
|
useEpoll: true
|
||||||
|
highPacketPriority: true
|
||||||
|
bufferDurationMs: 200
|
||||||
|
byteBufAllocator: "default"
|
||||||
|
sources:
|
||||||
|
# Remote sources
|
||||||
|
bandcamp: true
|
||||||
|
getyarn: true
|
||||||
|
http: true
|
||||||
|
odysee: true
|
||||||
|
reddit: true
|
||||||
|
soundcloud: true
|
||||||
|
tiktok: true
|
||||||
|
twitch: true
|
||||||
|
vimeo: true
|
||||||
|
yandex: true
|
||||||
|
youtube: true
|
||||||
|
|
||||||
|
# Local source
|
||||||
|
local: false
|
||||||
|
lavaplayer:
|
||||||
|
nonAllocating: false # Whether to use the non-allocating frame buffer.
|
||||||
|
frameBufferDuration: 5000 # The frame buffer duration, in milliseconds
|
||||||
|
youtubePlaylistLoadLimit: 60 # Number of pages at 100 each
|
||||||
|
gc-warnings: true
|
||||||
|
youtubeSearchEnabled: true
|
||||||
|
odyseeSearchEnabled: true
|
||||||
|
soundcloudSearchEnabled: true
|
||||||
|
yandexMusicSearchEnabled: true
|
||||||
|
#youtubeConfig:
|
||||||
|
# email: ""
|
||||||
|
# password: ""
|
||||||
|
# You can get your yandex oauth token here https://music-yandex-bot.ru/ used to remove the 30s limit on some tracks
|
||||||
|
#yandexOAuthToken:
|
||||||
|
#ratelimit:
|
||||||
|
#ipBlocks: ["1.0.0.0/8", "..."] # list of ip blocks
|
||||||
|
#excludedIps: ["...", "..."] # ips which should be explicit excluded from usage by lavalink
|
||||||
|
#strategy: "RotateOnBan" # RotateOnBan | LoadBalance | NanoSwitch | RotatingNanoSwitch
|
||||||
|
#searchTriggersFail: true # Whether a search 429 should trigger marking the ip as failing
|
||||||
|
#retryLimit: -1 # -1 = use default lavaplayer value | 0 = infinity | >0 = retry will happen this numbers times
|
||||||
|
|
||||||
|
metrics:
|
||||||
|
prometheus:
|
||||||
|
enabled: true
|
||||||
|
endpoint: /metrics
|
||||||
|
|
||||||
|
sentry:
|
||||||
|
dsn: ""
|
||||||
|
environment: ""
|
||||||
|
# tags:
|
||||||
|
# some_key: some_value
|
||||||
|
# another_key: another_value
|
||||||
|
|
||||||
|
#logging:
|
||||||
|
# file:
|
||||||
|
# path: ./logs/
|
||||||
|
# logback:
|
||||||
|
# rollingpolicy:
|
||||||
|
# max-file-size: 1GB
|
||||||
|
# max-history: 30
|
||||||
|
|
||||||
|
level:
|
||||||
|
root: INFO
|
||||||
|
lavalink: INFO
|
||||||
|
" > application.yml
|
||||||
|
echo "
|
||||||
|
{
|
||||||
|
"apps":[
|
||||||
|
{
|
||||||
|
"name":"Lavalink",
|
||||||
|
"cwd":".",
|
||||||
|
"script":"/usr/bin/java",
|
||||||
|
"args":[
|
||||||
|
"-jar",
|
||||||
|
"/root/freelavalink/Lavalink.jar",
|
||||||
|
],
|
||||||
|
"exec_interpreter":"",
|
||||||
|
"exec_mode":"fork"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
" > config.json
|
||||||
|
echo -e "\e[32m* Lavalink Installation Completed\e[0m"
|
||||||
|
|
||||||
|
# Start Lavalink
|
||||||
|
sudo pm2 start Lavalink.jar --name "Lavalink"
|
||||||
|
sudo pm2 startup
|
||||||
|
sudo pm2 save
|
||||||
Loading…
Add table
Reference in a new issue