#!/bin/bash #A tool to install YSFReflector. #This is essentially a scripted version of: #https://register.ysfreflector.de/installation #Step 1: Install Debian 9 and make sure it is up to date. #Step 2: Run this script #Step 3: Use systemd to control the service # systemctl status ysfreflector #Lets begin------------------------------------------------------------------------------------------------- WHO=$(whoami) if [ "$WHO" != "root" ] then echo "" echo "You Must be root to run this script!!" exit 0 fi if [ ! -e "/etc/debian_version" ] then echo "" echo "This script is only tested in Debian/Ubuntu 8,9,10 and x64 cpu Arch. for now." exit 0 fi DIRDIR=$(pwd) YSFREPO=https://github.com/g4klx/YSFClients.git YSFDASHREPO=https://github.com/dg9vh/YSFReflector-Dashboard.git DEP="wget git build-essential g++ apache2 php libapache2-mod-php" YSFINSTDIR=/root/reflector-install-files/ysfreflector YSFAPPDIR=/ysfreflector YSFDASDIR=/root/reflector-install-files/ysfdash YSFWEBDIR=/var/www/ysf echo "" echo "------------------------------------------------------------------------------" read -p "What will the name of your reflector be? 16 Characters MAX, this includes spaces. " YSFNAME YSFNAMEC=$(expr length "$YSFNAME") until [ $YSFNAMEC -le 16 ] do read -p "What will the name of your reflector be? 16 Characters MAX, this includes spaces. " YSFNAME YSFNAMEC=$(expr length "$YSFNAME") done echo "------------------------------------------------------------------------------" echo "" read -p "What is the description? 14 Characters MAX, this includes spaces. " YSFDESC YSFDESCC=$(expr length "$YSFDESC") until [ $YSFDESCC -le 14 ] do read -p "What is the description? 14 Characters MAX, this includes spaces. " YSFDESC YSFDESCC=$(expr length "$YSFDESC") done echo "------------------------------------------------------------------------------" echo "" read -p "What is the FQDN of the YSF Reflector dashboard? Example: ysf.domain.com " YSFDOMAIN echo "" echo "------------------------------------------------------------------------------" echo "Installing required software... " apt-get -y install $DEP echo "" echo "Creating YSF directories... " mkdir -p $YSFINSTDIR mkdir -p $YSFAPPDIR mkdir -p $YSFWEBDIR mkdir -p $YSFDASDIR if [ -e $YSFINSTDIR/YSFClients/YSFReflector/YSFReflector ] then echo "" echo "It looks like you have already compiled YSFReflector. If you want to install it again, delete the directory '/root/YSFReflector-install-files' and run this script again. " exit 0 else echo "" echo "------------------------------------------------------------------------------" echo "Downloading and compiling YSFReflector... " echo "------------------------------------------------------------------------------" cd $YSFINSTDIR git clone $YSFREPO cd $YSFINSTDIR/YSFClients/YSFReflector make clean all fi if [ -e $YSFINSTDIR/YSFClients/YSFReflector/YSFReflector ] then echo "" echo "It looks like everything compiled successfully. There is a 'YSFReflector' application file. " echo "------------------------------------------------------------------------------" else echo "------------------------------------------------------------------------------" echo "UH OH!! I dont see the YSFReflector application file after attempting to compile. The output above is the only indication as to why it might have failed. To Try again Remove '/root/reflector-install-files'. " exit 0 fi echo "" echo "Copying files over to the executable directory...... " cp $YSFINSTDIR/YSFClients/YSFReflector/YSFReflector $YSFAPPDIR cp $YSFINSTDIR/YSFClients/YSFReflector/YSFReflector.ini $YSFAPPDIR echo "Updating ini file in /YSFReflector...... " sed -i "s/16[ ]*characters[ ]*max/$YSFNAME/g" $YSFAPPDIR/YSFReflector.ini sed -i "s/14[ ]*characters[ ]*max/$YSFDESC/g" $YSFAPPDIR/YSFReflector.ini sed -i "s/FilePath=./FilePath=\/var\/log\/YSFReflector\//g" $YSFAPPDIR/YSFReflector.ini groupadd mmdvm useradd mmdvm -g mmdvm -s /sbin/nologin mkdir -p /var/log/YSFReflector chown mmdvm: /var/log/YSFReflector echo "Copying ysfrelfector to systemd...... " cp $DIRDIR/templates/ysf.service /etc/systemd/system systemctl daemon-reload systemctl enable ysf echo "------------------------------------------------------------------------------" echo "Installing the YSF Dashboard and configuring apache... " echo "------------------------------------------------------------------------------" cd $YSFDASDIR git clone $YSFDASHREPO cp -R $YSFDASDIR/YSFReflector-Dashboard/* $YSFWEBDIR/ mkdir $YSFWEBDIR/config cp $DIRDIR/templates/config.php $YSFWEBDIR/config/ mv $YSFWEBDIR/setup.php $YSFDASDIR/original-setup.php #Copy apache vhost files over for ysf cp $DIRDIR/templates/apache.tbd.conf /etc/apache2/sites-available/$YSFDOMAIN.conf sed -i "s/apache.tbd/$YSFDOMAIN/g" /etc/apache2/sites-available/$YSFDOMAIN.conf sed -i "s/ysf-xlxd/ysf/g" /etc/apache2/sites-available/$YSFDOMAIN.conf chown -R www-data: $YSFWEBDIR a2ensite $YSFDOMAIN a2enmod php7.4 systemctl start ysf systemctl restart apache2 echo "" echo "" echo "******************************************************************************" echo "" echo " This concludes the install of YSFReflector and Dashboard..... " echo "" echo "******************************************************************************" echo "" echo "Remember to register your YSF Reflector at https://register.ysfreflector.de/register. " echo "" echo "" echo " To restart YSFReflector: 'systemctl restart ysf' " echo "" echo " To stop YSFReflector: 'systemctl stop ysf' " echo "" echo " Your web dashboard can be found at: " echo " http://$YSFDOMAIN " echo "" echo "------------------------------------------------------------------------------"