369 lines
12 KiB
Bash
Executable File
369 lines
12 KiB
Bash
Executable File
clear
|
|
choice=""
|
|
RED=`tput setaf 1`
|
|
GREEN=`tput setaf 2`
|
|
NC=`tput sgr0` # No Color
|
|
|
|
# Install Choice ===================================================>
|
|
echo "${RED}Open RSC Installer:${NC}
|
|
An easy to run RSC private server environment using Docker magic.
|
|
|
|
Before continuing, Open RSC needs to know if you have Java, Docker, and Git installed.
|
|
This installer can install one or both for you if needed.
|
|
|
|
Choices:
|
|
${RED}1${NC} - Install for me!
|
|
${RED}2${NC} - Im all set, continue! (default)"
|
|
echo ""
|
|
echo "Which of the above do you wish to do? Type the choice number and press enter."
|
|
echo ""
|
|
echo ""
|
|
read install
|
|
|
|
# OS Selection ===================================================>
|
|
if [ "$install" == "1" ]; then
|
|
clear
|
|
echo "Which operating system are you running?"
|
|
echo ""
|
|
echo "${RED}1${NC} - Ubuntu Linux"
|
|
echo "${RED}2${NC} - Fedora 28 Linux"
|
|
echo "${RED}3${NC} - CentOS 7 Linux"
|
|
echo "${RED}4${NC} - Mac OS High Sierra"
|
|
echo "${RED}5${NC} - Other"
|
|
echo ""
|
|
echo "Which of the above do you wish to do? Type the choice number and press enter."
|
|
echo ""
|
|
echo ""
|
|
read os
|
|
|
|
# Ubuntu OS ===================================================>
|
|
if [ "$os" == "1" ]; then
|
|
echo ""
|
|
sudo dpkg-reconfigure tzdata
|
|
echo ""
|
|
echo ""
|
|
echo "Which Ubuntu Linux version are you running?"
|
|
echo ""
|
|
echo "${RED}1${NC} - Bionic 18.04"
|
|
echo "${RED}2${NC} - Cosmic 18.10"
|
|
echo ""
|
|
read ubuntu
|
|
|
|
# Ubuntu Version ===================================================>
|
|
if [ "$ubuntu" == "1" ]; then
|
|
vers="bionic"
|
|
elif [ "$ubuntu" == "2" ]; then
|
|
vers="cosmic"
|
|
else
|
|
vers="bionic"
|
|
continue
|
|
fi
|
|
# UBUNTU Version <===================================================
|
|
|
|
echo ""
|
|
echo ""
|
|
echo "Verifying the basics are installed."
|
|
echo ""
|
|
sudo apt-get update
|
|
sudo apt-get install software-properties-common -y
|
|
sudo add-apt-repository ppa:certbot/certbot -y
|
|
sudo apt-get update
|
|
sudo apt-get install certbot screen zip fail2ban unzip git build-essential apt-transport-https ca-certificates curl software-properties-common -y
|
|
echo ""
|
|
echo ""
|
|
echo "Do you have Docker installed? It is required for this."
|
|
echo ""
|
|
echo "${RED}1${NC} - No, install it for me!"
|
|
echo "${RED}2${NC} - Yes"
|
|
echo ""
|
|
echo "Which of the above do you wish to do? Type the choice number and press enter."
|
|
echo ""
|
|
echo ""
|
|
read docker
|
|
|
|
# Ubuntu Docker ===================================================>
|
|
if [ "$docker" == "1" ]; then
|
|
echo "Attempting to install Docker now"
|
|
echo ""
|
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
|
|
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $vers stable"
|
|
sudo apt-get update && sudo apt-get install docker-ce docker-compose -y
|
|
else
|
|
continue
|
|
fi
|
|
# Ubuntu Docker <===================================================
|
|
echo ""
|
|
echo "Setting Docker to have the correct storage driver."
|
|
echo ""
|
|
echo '{
|
|
"storage-driver": "devicemapper"
|
|
}' | sudo tee --append /etc/docker/daemon.json && sudo service docker restart
|
|
echo ""
|
|
|
|
echo ""
|
|
echo "Configuring UFW to allow good ports and block MySQL from outside."
|
|
echo ""
|
|
sudo ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 8080/tcp && ufw allow 443/tcp && ufw allow 9000/tcp && ufw allow 53595/tcp && ufw deny 3306/tcp
|
|
sudo sed -i 's/DEFAULT_FORWARD_POLICY="DENY"/DEFAULT_FORWARD_POLICY="ACCEPT"/g' /etc/default/ufw
|
|
sudo ufw reload
|
|
echo ""
|
|
echo ""
|
|
echo "UFW firewall rules have been added. Enable it later via:"
|
|
echo "sudo ufw enable"
|
|
echo ""
|
|
echo ""
|
|
echo "Do you have Oracle Java JDK 8 and Ant installed already? It is required for this."
|
|
echo ""
|
|
echo "${RED}1${NC} - Install for me!"
|
|
echo "${RED}2${NC} - Im all set"
|
|
echo ""
|
|
echo "Which of the above do you wish to do? Type the choice number and press enter."
|
|
echo ""
|
|
echo ""
|
|
read java
|
|
|
|
# Ubuntu Java ===================================================>
|
|
if [ "$java" == "1" ]; then
|
|
sudo apt-get remove openjdk-6-jre default-jre default-jre-headless -y
|
|
sudo add-apt-repository ppa:webupd8team/java -y && sudo apt update && sudo apt install ant oracle-java8-set-default openjfx -y
|
|
else
|
|
continue
|
|
fi
|
|
# Ubuntu Java <===================================================
|
|
# Ubuntu OS <===================================================
|
|
|
|
# Mac OS ===================================================>
|
|
elif [ "$os" == "4" ]; then
|
|
clear
|
|
echo "Do you have brew installed? It is required for this."
|
|
echo ""
|
|
echo "${RED}1${NC} - No, install it for me!"
|
|
echo "${RED}2${NC} - Yes"
|
|
echo ""
|
|
echo "Which of the above do you wish to do? Type the choice number and press enter."
|
|
echo ""
|
|
echo ""
|
|
read brew
|
|
|
|
# Mac Brew ===================================================>
|
|
if [ "$brew" == "1" ]; then
|
|
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
|
brew install git
|
|
fi
|
|
# Mac Brew <===================================================
|
|
|
|
echo ""
|
|
echo ""
|
|
echo "Verifying the basics are installed."
|
|
echo ""
|
|
brew install unzip wget git curl zip screen
|
|
echo ""
|
|
echo ""
|
|
echo "Do you have Oracle Java JDK 8 and Ant installed already? It is required for this."
|
|
echo ""
|
|
echo "${RED}1${NC} - Install for me!"
|
|
echo "${RED}2${NC} - Im all set"
|
|
echo ""
|
|
echo "Which of the above do you wish to do? Type the choice number and press enter."
|
|
echo ""
|
|
echo ""
|
|
read java
|
|
|
|
# Mac Java ===================================================>
|
|
if [ "$java" == "1" ]; then
|
|
brew tap AdoptOpenJDK/openjdk
|
|
brew install adoptopenjdk-openjdk8 ant openjfx
|
|
fi
|
|
# Mac Java <===================================================
|
|
|
|
echo ""
|
|
echo ""
|
|
echo "Do you have Docker installed? It is required for this."
|
|
echo ""
|
|
echo "${RED}1${NC} - No, install it for me!"
|
|
echo "${RED}2${NC} - Yes"
|
|
echo ""
|
|
echo "Which of the above do you wish to do? Type the choice number and press enter."
|
|
echo ""
|
|
echo ""
|
|
read docker
|
|
|
|
# Mac Docker ===================================================>
|
|
if [ "$docker" == "1" ]; then
|
|
echo "Downloading the Docker for Mac installer."
|
|
echo ""
|
|
wget https://download.docker.com/mac/stable/Docker.dmg
|
|
hdiutil attach Docker.dmg
|
|
echo ""
|
|
echo "Please drag Docker as instructed in the popup."
|
|
echo ""
|
|
echo "Press enter when finished."
|
|
echo ""
|
|
read
|
|
echo ""
|
|
open /Applications/Docker.app
|
|
echo ""
|
|
echo "Docker is launching. Please follow the directions that it gives you."
|
|
echo ""
|
|
echo "Press enter when finished."
|
|
echo ""
|
|
read
|
|
fi
|
|
# Mac Docker <===================================================
|
|
# Mac OS <===================================================
|
|
|
|
else
|
|
continue
|
|
fi
|
|
# OS Selection <===================================================
|
|
|
|
else
|
|
continue
|
|
fi
|
|
# Install Choice <===================================================
|
|
|
|
clear
|
|
echo "Checking for updates to the Docker-Home repository."
|
|
echo ""
|
|
sudo git pull
|
|
echo ""
|
|
echo ""
|
|
clear
|
|
echo "${RED}Open RSC Installer:${NC}
|
|
An easy to run RSC private server using Docker magic.
|
|
|
|
Choices:
|
|
${RED}1${NC} - Set up for single player
|
|
${RED}2${NC} - Deployment for a publicly hosted server
|
|
${RED}3${NC} - Backup all SQL databases
|
|
"
|
|
echo ""
|
|
echo "Which of the above do you wish to do? Type the choice number and press enter."
|
|
echo ""
|
|
echo ""
|
|
read choice
|
|
|
|
# Selection ===================================================>
|
|
# 1. Set up for single player ===================================================>
|
|
if [ "$choice" == "1" ]; then
|
|
clear
|
|
echo "You have picked ${GREEN}Set up for single player!${NC}"
|
|
echo ""
|
|
echo ""
|
|
echo "Starting up the Docker containers. If error, do \"sudo make stop\" and rerun script."
|
|
echo ""
|
|
sudo make start-single-player
|
|
echo ""
|
|
echo ""
|
|
echo "Fetching the Game from the Open RSC git repo."
|
|
echo ""
|
|
sudo make clone-game
|
|
sudo chmod -R 777 Game
|
|
echo ""
|
|
echo ""
|
|
echo "Creating the client cache in your home folder."
|
|
echo ""
|
|
mkdir ~/OpenRSC
|
|
unzip -o Game/client/cache.zip -d ~/OpenRSC
|
|
echo ""
|
|
echo ""
|
|
echo "Importing the game databases."
|
|
echo ""
|
|
sudo make import-game
|
|
echo ""
|
|
echo ""
|
|
echo "Ready to launch \"./Linux_Single_Player.sh\" - Press enter when ready."
|
|
echo ""
|
|
echo ""
|
|
read next
|
|
./Linux_Single_Player.sh
|
|
# 1. Set up for single player <===================================================
|
|
|
|
# 2. Deployment for a publicly hosted server ===================================================>
|
|
elif [ "$choice" == "2" ]; then
|
|
clear
|
|
echo "You have picked ${GREEN}deployment for a publicly hosted server!${NC}"
|
|
echo ""
|
|
echo ""
|
|
echo "Starting up the Docker containers. If error, do \"sudo make stop\" and rerun script."
|
|
echo ""
|
|
sudo chmod -R 777 .
|
|
sudo make start
|
|
echo ""
|
|
echo ""
|
|
echo "Fetching the Website and Game from the Open RSC git repo."
|
|
echo ""
|
|
sudo make clone-game
|
|
sudo make clone-website
|
|
sudo chmod -R 777 .
|
|
echo ""
|
|
echo ""
|
|
echo "Creating the client cache in your home folder."
|
|
echo ""
|
|
mkdir ~/OpenRSC
|
|
unzip -o Game/client/cache.zip -d ~/OpenRSC
|
|
echo ""
|
|
echo ""
|
|
echo "Next is manual file editing for the website domain and SQL user/pass."
|
|
echo ""
|
|
echo "It is suggested that you first navigate to your VPS's http://domain:9000"
|
|
echo ""
|
|
echo "Create a new SQL user and password, grant all permissions, then remove the others."
|
|
echo ""
|
|
echo ""
|
|
echo "When finished, it will be time to edit the files that rely on that new SQL user."
|
|
echo ""
|
|
echo "(Use Ctrl + X to save each file when done editing) - Press enter when ready."
|
|
read next
|
|
sudo nano .env
|
|
sudo nano Game/client/src/org/openrsc/client/Config.java
|
|
sudo nano Game/Launcher/src/Main.java
|
|
sudo nano Game/server/config/config.xml
|
|
sudo nano etc/ghost/config.production.json
|
|
echo ""
|
|
echo ""
|
|
echo "File edits complete."
|
|
echo ""
|
|
echo ""
|
|
echo "Importing the databases."
|
|
echo ""
|
|
sudo make import-game
|
|
sudo make import-ghost
|
|
echo ""
|
|
echo ""
|
|
echo "Restarting Docker containers"
|
|
echo ""
|
|
sudo make stop && sudo make start
|
|
echo ""
|
|
echo ""
|
|
echo "Ready to launch \"./Linux_Fetch_Updates_Production.sh\" - Press enter when ready."
|
|
echo ""
|
|
echo ""
|
|
read next
|
|
./Linux_Fetch_Updates_Production.sh
|
|
# 2. Deployment for a publicly hosted server <===================================================
|
|
|
|
# 3. Backup ===================================================>
|
|
elif [ "$choice" == "3" ]; then
|
|
|
|
echo "You have picked ${GREEN}backup all SQL databases!${NC}"
|
|
echo ""
|
|
echo ""
|
|
sudo make backup
|
|
echo ""
|
|
echo ""
|
|
echo "Done! - Press enter to return back to the menu."
|
|
echo ""
|
|
read
|
|
./Linux_Installer.sh
|
|
# 3. Backup <===================================================
|
|
|
|
else
|
|
echo ""
|
|
echo "Error! ${RED}$choice${NC} is not a valid option. Press enter to try again."
|
|
echo ""
|
|
read
|
|
./Linux_Installer.sh
|
|
fi
|
|
# Selection <===================================================
|