Create server-setup.sh

With this script you could run this on a fresh system and all the work will be done for you

Feel free to contribute
This commit is contained in:
Kyle Warwick-Mathieu
2015-02-24 03:04:39 -05:00
parent 3309bf5225
commit f4be3620b6

120
server-setup.sh Normal file
View File

@@ -0,0 +1,120 @@
#!/bin/bash
ROOT_UID="0"
#Please put this script into your home folder
#Check if run as root
if [ "$UID" -ne "$ROOT_UID" ] ; then
echo "You must be root to do that!"
exit 1
fi
echo "Hello and welcome to my installation script. I assume you're running this as root?"
echo "Okay! Gotta love when a plan comes together!"
echo "Let me install a few upgrade and packages on your system for you...."
echo "If you already have a package installed, I'll simply skip over it or upgrade it"
clear
apt-get update -y >/dev/null
echo "Updated repo lists...."
echo "Installing package upgrades... go kill some time as this may take a few minutes..."
apt-get upgrade -y >/dev/null
clear
echo "Upgrades complete!"
echo "Now installing required packages..."
apt-get install apache python 2.7 python-twisted git -y >/dev/null
echo "Installing Apache, Python 2.7, Python Twisted and GitHub....."
clear
echo "Where is your Apache config directory?"
echo "For example: /etc/apache2
read -e APACHEDIR
echo "The path your provided is: $APACHEDIR"
echo "Now I will clone the github repo to the directory of where this script is"
git clone https://github.com/BeanJr/dwc_network_server_emulator
echo "Now that that's out of the way, let's do some apache stuff"
cd $APACHEDIR
echo "I've changed directory to $APACHEDIR"
echo "Creating sites to sites-available for virtual hosting of the server"
echo "changing directory to sites-available"
cd $APACHEDIR/sites-available/
cat > gamestats2.gs.nintendowifi.net <<EOF
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName gamestats2.gs.nintendowifi.net
ServerAlias "gamestats2.gs.nintendowifi.net, gamestats2.gs.nintendowifi.net"
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9002/
ProxyPassReverse / http://127.0.0.1:9002/
</VirtualHost>
EOF
cat > gamestats.gs.nintendowifi.net <<EOF
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName gamestats.gs.nintendowifi.net
ServerAlias "gamestats.gs.nintendowifi.net, gamestats.gs.nintendowifi.net"
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9002/
ProxyPassReverse / http://127.0.0.1:9002/
</VirtualHost>
EOF
cat > nas-naswii-dls1-conntest.nintendowifi.net <<EOF
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName naswii.nintendowifi.net
ServerAlias "naswii.nintendowifi.net, naswii.nintendowifi.net"
ServerAlias "nas.nintendowifi.net"
ServerAlias "nas.nintendowifi.net, nas.nintendowifi.net"
ServerAlias "dls1.nintendowifi.net"
ServerAlias "dls1.nintendowifi.net, dls1.nintendowifi.net"
ServerAlias "conntest.nintendowifi.net"
ServerAlias "conntest.nintendowifi.net, conntest.nintendowifi.net"
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>
EOF
cat > sake.gs.nintendowifi.net <<EOF
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName sake.gs.nintendowifi.net
ServerAlias sake.gs.nintendowifi.net *.sake.gs.nintendowifi.net
ServerAlias secure.sake.gs.nintendowifi.net
ServerAlias secure.sake.gs.nintendowifi.net *.secure.sake.gs.nintendowifi.net
ProxyPass / http://127.0.0.1:8000/
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
EOF
clear
echo "Okay! Let's hope nothing broke during this process..."
echo "Now let's enable the sites so Apache can use them"
a2ensite gamestats2.gs.nintendowifi.net gamestats.gs.nintendowifi.net nas-naswii-dls1-conntest.nintendowifi.net sake.gs.nintendowifi.net
echo "Now let's enable some modules so we can make all of this work..."
a2enmod proxy.conf proxy_http.load proxy.load
echo "Great! Everything appears to be set up as far as Apache"
service apache2 restart
service apache2 reload
echo "If any errors occour (besides the hostname/server name error) please look into this yourself as my bash scripting knowledge is very limited"
echo "Let's go back to the home directory where all this began"
cd
clear
cd dwc_network_server_emulator
echo "Now, let's set up the admin page login info...."
echo "Please type your user name: "
read -p USR
echo "Please enter the password you want to use: "
read -p PASS
cat > adminpageconf.json <<EOF
{"username":"$USR","password":"$PASS"}
EOF
echo "Username and password set!"
echo "NOTE: To get to the admin page type in the IP of your server :9009/banhammer"
clear
echo "Now, I BELIEVE everything should be in working order. If not, you might have to do some troubleshooting"
echo "Assuming my coding hasn't gotten the best of me, you should be in the directory with all the python script along with a new .json file for the admin page info"
echo "I will now exit...."
exit 1