|
@@ -0,0 +1,511 @@
|
|
|
|
|
+#!/bin/bash
|
|
|
|
|
+
|
|
|
|
|
+# Reset
|
|
|
|
|
+Color_Off='\033[0m' # Text Reset
|
|
|
|
|
+
|
|
|
|
|
+# Regular Colors
|
|
|
|
|
+Black='\033[0;30m' # Black
|
|
|
|
|
+Red='\033[0;31m' # Red
|
|
|
|
|
+Green='\033[0;32m' # Green
|
|
|
|
|
+Yellow='\033[0;33m' # Yellow
|
|
|
|
|
+Blue='\033[0;34m' # Blue
|
|
|
|
|
+Purple='\033[0;35m' # Purple
|
|
|
|
|
+Cyan='\033[0;36m' # Cyan
|
|
|
|
|
+White='\033[0;37m' # White
|
|
|
|
|
+
|
|
|
|
|
+# Underline
|
|
|
|
|
+UBlack='\033[4;30m' # Black
|
|
|
|
|
+URed='\033[4;31m' # Red
|
|
|
|
|
+UGreen='\033[4;32m' # Green
|
|
|
|
|
+UYellow='\033[4;33m' # Yellow
|
|
|
|
|
+UBlue='\033[4;34m' # Blue
|
|
|
|
|
+UPurple='\033[4;35m' # Purple
|
|
|
|
|
+UCyan='\033[4;36m' # Cyan
|
|
|
|
|
+UWhite='\033[4;37m' # White
|
|
|
|
|
+
|
|
|
|
|
+# Background
|
|
|
|
|
+On_Black='\033[40m' # Black
|
|
|
|
|
+On_Red='\033[41m' # Red
|
|
|
|
|
+On_Green='\033[42m' # Green
|
|
|
|
|
+On_Yellow='\033[43m' # Yellow
|
|
|
|
|
+On_Blue='\033[44m' # Blue
|
|
|
|
|
+On_Purple='\033[45m' # Purple
|
|
|
|
|
+On_Cyan='\033[46m' # Cyan
|
|
|
|
|
+On_White='\033[47m' # White
|
|
|
|
|
+
|
|
|
|
|
+#show banner
|
|
|
|
|
+clear
|
|
|
|
|
+echo -e "${Red}"
|
|
|
|
|
+echo ""
|
|
|
|
|
+echo " ███████ ██████ ████████ ███████ ██ ██ █████ ██████ ";
|
|
|
|
|
+sleep 0.1
|
|
|
|
|
+echo " ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ";
|
|
|
|
|
+sleep 0.1
|
|
|
|
|
+echo " █████ ██████ ██ █████ █████ ███████ ██████ ";
|
|
|
|
|
+sleep 0.1
|
|
|
|
|
+echo " ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ";
|
|
|
|
|
+sleep 0.1
|
|
|
|
|
+echo " ███████ ██████ ██ ███████ ██ ██ ██ ██ ██ ██ ";
|
|
|
|
|
+echo ""
|
|
|
|
|
+echo -e "${Color_Off}"
|
|
|
|
|
+
|
|
|
|
|
+script_path="/root/voip_server_initial_setup/"
|
|
|
|
|
+
|
|
|
|
|
+# Set the path to the voip_server application
|
|
|
|
|
+voip_server_path="/root/voip_managment_server/"
|
|
|
|
|
+
|
|
|
|
|
+# Define an array of symbols to use for the loading indicator
|
|
|
|
|
+ spinner=( 'Loading /' 'Loading -' 'Loading \' 'Loading |' )
|
|
|
|
|
+
|
|
|
|
|
+# Define a function to display the loading indicator
|
|
|
|
|
+spin() {
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ # Run an infinite loop
|
|
|
|
|
+ while true; do
|
|
|
|
|
+ # Display each symbol of the loading indicator in order
|
|
|
|
|
+ for i in "${spinner[@]}"; do
|
|
|
|
|
+ # Clear the previous line and display the new symbol
|
|
|
|
|
+ echo -ne "\r$i"
|
|
|
|
|
+ # Wait for 0.1 seconds
|
|
|
|
|
+ sleep 0.1
|
|
|
|
|
+ done
|
|
|
|
|
+ done
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+loding_start(){
|
|
|
|
|
+
|
|
|
|
|
+ spinner=( "$1 -" "$1 /" "$1 |" "$1 \ " )
|
|
|
|
|
+ spin &
|
|
|
|
|
+ # Save the process ID of the loading indicator
|
|
|
|
|
+ SPIN_PID=$!
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+loding_stop(){
|
|
|
|
|
+ # Clear the line
|
|
|
|
|
+ echo -ne "\r\033[K"
|
|
|
|
|
+ kill -s SIGTERM $SPIN_PID
|
|
|
|
|
+ sleep 0.1
|
|
|
|
|
+ # Unset the SPIN_PID variable
|
|
|
|
|
+ unset SPIN_PID
|
|
|
|
|
+
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+function update()
|
|
|
|
|
+{
|
|
|
|
|
+ printf "${Cyan}update centos\n${Color_Off}"
|
|
|
|
|
+ yum update -y
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+function install_packages()
|
|
|
|
|
+{
|
|
|
|
|
+ cd packages
|
|
|
|
|
+ loding_start "install packages"
|
|
|
|
|
+ sudo rpm -ivh --force *.rpm > /dev/null 2>&1
|
|
|
|
|
+ loding_stop 2>/dev/null
|
|
|
|
|
+ cd ../
|
|
|
|
|
+
|
|
|
|
|
+ printf "${Green}packages installed\n${Color_Off}"
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+function install_node()
|
|
|
|
|
+{
|
|
|
|
|
+ version=$(node -v 2>/dev/null)
|
|
|
|
|
+ if [ -z "$version" -o "$version" != "v14.18.1" ]; then
|
|
|
|
|
+ loding_start "install node js"
|
|
|
|
|
+
|
|
|
|
|
+ tar xzf node-v14.18.1-linux-x64.tar.gz > /dev/null 2>&1
|
|
|
|
|
+ cd node-v14.18.1-linux-x64
|
|
|
|
|
+ for dir in bin include lib share; do cp -par ${dir}/* /usr/local/${dir}/; done > /dev/null 2>&1
|
|
|
|
|
+ cd ../
|
|
|
|
|
+
|
|
|
|
|
+ loding_stop 2>/dev/null
|
|
|
|
|
+
|
|
|
|
|
+ printf "${Green}node.js 14.18.1 installed\n${Color_Off}"
|
|
|
|
|
+ else
|
|
|
|
|
+ printf "${UGreen}node.js 14.18.1 already installed\n${Color_Off}"
|
|
|
|
|
+ fi
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+function install_pm2()
|
|
|
|
|
+{
|
|
|
|
|
+ version=$(pm2 --version 2>/dev/null)
|
|
|
|
|
+ if [ "$version" != "5.1.2" ]; then
|
|
|
|
|
+ loding_start "install pm2"
|
|
|
|
|
+
|
|
|
|
|
+ tar -xvf pm2-5.1.2.tgz > /dev/null 2>&1
|
|
|
|
|
+ cd pm2
|
|
|
|
|
+ npm install -g > /dev/null 2>&1
|
|
|
|
|
+ cd ../
|
|
|
|
|
+
|
|
|
|
|
+ loding_stop 2>/dev/null
|
|
|
|
|
+
|
|
|
|
|
+ printf "${Green}pm2 5.1.2 installed\n${Color_Off}"
|
|
|
|
|
+ else
|
|
|
|
|
+ printf "${UGreen}pm2 5.1.2 already installed\n${Color_Off}"
|
|
|
|
|
+ fi
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+function install_git_v2()
|
|
|
|
|
+{
|
|
|
|
|
+ version=$(git --version 2>/dev/null)
|
|
|
|
|
+
|
|
|
|
|
+ if [ "$version" != "git version 2.9.5" ]; then
|
|
|
|
|
+ loding_start "install git"
|
|
|
|
|
+
|
|
|
|
|
+ tar -xvf git-2.9.5.tar.gz > /dev/null 2>&1
|
|
|
|
|
+ cd git-2.9.5
|
|
|
|
|
+ make configure > /dev/null 2>&1
|
|
|
|
|
+ sudo ./configure --prefix=/usr > /dev/null 2>&1
|
|
|
|
|
+ sudo make > /dev/null 2>&1
|
|
|
|
|
+ sudo make install > /dev/null 2>&1
|
|
|
|
|
+
|
|
|
|
|
+ config_git
|
|
|
|
|
+ cd ../
|
|
|
|
|
+
|
|
|
|
|
+ loding_stop 2>/dev/null
|
|
|
|
|
+
|
|
|
|
|
+ printf "${Green}git 2.9.5 installed\n${Color_Off}"
|
|
|
|
|
+ else
|
|
|
|
|
+ printf "${UGreen}git 2.9.5 already installed\n${Color_Off}"
|
|
|
|
|
+ fi
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+function config_git(){
|
|
|
|
|
+ git config --global user.name "Mohamad Rezaie"
|
|
|
|
|
+ git config --global user.email m.rezaie.aval@gmail.com
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+function create_mysql_db()
|
|
|
|
|
+{
|
|
|
|
|
+ password='69603AaB@'
|
|
|
|
|
+ result=$(mysql --user=root --password=$password -Bse "CREATE DATABASE ebtekar; GRANT ALL PRIVILEGES ON *.* To 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;" 2>&1 )
|
|
|
|
|
+
|
|
|
|
|
+ while [[ "$result" == "ERROR 1045"* ]]
|
|
|
|
|
+ do
|
|
|
|
|
+ printf "${Red}password is not correct\n${Color_Off}"
|
|
|
|
|
+ read -s -p "Please enter your mysql password: " password
|
|
|
|
|
+ result=$(mysql --user=root --password=$password -Bse "create database ebtekar; GRANT ALL PRIVILEGES ON *.* To 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;" 2>&1 )
|
|
|
|
|
+ printf "\n"
|
|
|
|
|
+ done
|
|
|
|
|
+
|
|
|
|
|
+ if [[ "$result" == *"ERROR 1007"* ]]; then
|
|
|
|
|
+ printf "${UGreen}ebtekar database already created\n${Color_Off}"
|
|
|
|
|
+ else
|
|
|
|
|
+ printf "${UGreen}Databse Created\n${Color_Off}"
|
|
|
|
|
+ fi
|
|
|
|
|
+
|
|
|
|
|
+ if [ $(mysql --user=root --password=$password -e "use ebtekar; show tables like 'usermap';" | wc -l) -eq 0 ]
|
|
|
|
|
+ then
|
|
|
|
|
+ echo "restore database"
|
|
|
|
|
+ result=$(mysql --user=root --password=$password ebtekar < ebtekar.sql)2>&1
|
|
|
|
|
+ echo = $result
|
|
|
|
|
+ if [[ "$result" == *"ERROR 1007"* ]]; then
|
|
|
|
|
+ printf "${UGreen}restore failed\n${Color_Off}"
|
|
|
|
|
+ return 1
|
|
|
|
|
+ else
|
|
|
|
|
+ printf "${UGreen}Databse restored\n${Color_Off}"
|
|
|
|
|
+ fi
|
|
|
|
|
+ fi
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+function setup_voip_server()
|
|
|
|
|
+{
|
|
|
|
|
+ if [ ! -d "$voip_server_path" ]; then
|
|
|
|
|
+ echo "The project is not cloned. Please choose one of the following options:"
|
|
|
|
|
+ echo "1. Clone the project from http://192.168.2.221"
|
|
|
|
|
+ echo "2. Clone the project from http://efspco.ir"
|
|
|
|
|
+ echo "3. Clone the project from another URL"
|
|
|
|
|
+ echo "4. Exit"
|
|
|
|
|
+ read -p "Enter your choice: " choice
|
|
|
|
|
+ case $choice in
|
|
|
|
|
+ 1)
|
|
|
|
|
+ git clone http://192.168.2.221:3000/rezaie/voip_managment_server.git $voip_server_path
|
|
|
|
|
+ tar xf $voip_server_path/node_modules.tar.gz -C $voip_server_path
|
|
|
|
|
+ ;;
|
|
|
|
|
+ 2)
|
|
|
|
|
+ git clone http://efspco.ir:9696/rezaie/voip_managment_server.git $voip_server_path
|
|
|
|
|
+ tar xf $voip_server_path/node_modules.tar.gz -C $voip_server_path
|
|
|
|
|
+ ;;
|
|
|
|
|
+ 3)
|
|
|
|
|
+ read -p "Enter the URL of the project: " url
|
|
|
|
|
+ git clone $url $voip_server_path
|
|
|
|
|
+ tar xf $voip_server_path/node_modules.tar.gz -C $voip_server_path
|
|
|
|
|
+ ;;
|
|
|
|
|
+ 4)
|
|
|
|
|
+ exit 0
|
|
|
|
|
+ ;;
|
|
|
|
|
+ *)
|
|
|
|
|
+ echo "Invalid choice"
|
|
|
|
|
+ exit 1
|
|
|
|
|
+ ;;
|
|
|
|
|
+ esac
|
|
|
|
|
+ else
|
|
|
|
|
+ PS3="Please choose one of the following options:"
|
|
|
|
|
+ options=("Pull the latest changes" "Edit env" "voip server state" "copy resources" "update scripts" "extract node_modules" "pack node_modules" "Delete the project" "Exit")
|
|
|
|
|
+ select opt in "${options[@]}"
|
|
|
|
|
+ do
|
|
|
|
|
+ case $opt in
|
|
|
|
|
+ "Pull the latest changes")
|
|
|
|
|
+ cd $voip_server_path
|
|
|
|
|
+ git pull
|
|
|
|
|
+ break
|
|
|
|
|
+ ;;
|
|
|
|
|
+
|
|
|
|
|
+ "voip server state")
|
|
|
|
|
+ voip_server_state
|
|
|
|
|
+ break
|
|
|
|
|
+ ;;
|
|
|
|
|
+
|
|
|
|
|
+ "Edit env")
|
|
|
|
|
+ edit_env
|
|
|
|
|
+ break
|
|
|
|
|
+ ;;
|
|
|
|
|
+
|
|
|
|
|
+ "extract node_modules")
|
|
|
|
|
+ tar xf $voip_server_path/node_modules.tar.gz -C $voip_server_path
|
|
|
|
|
+ break
|
|
|
|
|
+ ;;
|
|
|
|
|
+
|
|
|
|
|
+ "pack node_modules")
|
|
|
|
|
+ tar -czvf $voip_server_path/node_modules.tar.gz -C $voip_server_path
|
|
|
|
|
+ break
|
|
|
|
|
+ ;;
|
|
|
|
|
+
|
|
|
|
|
+ "Delete the project")
|
|
|
|
|
+ read -p "Are you sure you want to delete the project? Type CONFIRM to confirm: " confirm
|
|
|
|
|
+ if [[ $confirm =~ ^[Cc][Oo][Nn][Ff][Ii][Rr][Mm]$ ]]; then
|
|
|
|
|
+ rm -rf $voip_server_path
|
|
|
|
|
+ else
|
|
|
|
|
+ echo "Deletion cancelled"
|
|
|
|
|
+ fi
|
|
|
|
|
+ break
|
|
|
|
|
+ ;;
|
|
|
|
|
+
|
|
|
|
|
+ "copy resources")
|
|
|
|
|
+ read -p "Are you sure you want to copy resources(all old resources rewriting!!!)? Type CONFIRM to confirm: " confirm
|
|
|
|
|
+ if [[ $confirm =~ ^[Cc][Oo][Nn][Ff][Ii][Rr][Mm]$ ]]; then
|
|
|
|
|
+ curl -X GET http://localhost:2030/api/managment/copy-resources
|
|
|
|
|
+ else
|
|
|
|
|
+ echo "copy resources cancelled"
|
|
|
|
|
+ fi
|
|
|
|
|
+ break
|
|
|
|
|
+ ;;
|
|
|
|
|
+
|
|
|
|
|
+ "update scripts")
|
|
|
|
|
+ read -p "Are you sure you want to update scripts(Changes made cannot be reversed!!!)? Type CONFIRM to confirm: " confirm
|
|
|
|
|
+ if [[ $confirm =~ ^[Cc][Oo][Nn][Ff][Ii][Rr][Mm]$ ]]; then
|
|
|
|
|
+ #TODO: add backup option && option for change port
|
|
|
|
|
+ curl -X GET http://localhost:2030/api/managment/update-scripts
|
|
|
|
|
+ else
|
|
|
|
|
+ echo "update scripts cancelled"
|
|
|
|
|
+ fi
|
|
|
|
|
+ break
|
|
|
|
|
+ ;;
|
|
|
|
|
+
|
|
|
|
|
+ "Exit")
|
|
|
|
|
+ exit 0
|
|
|
|
|
+ ;;
|
|
|
|
|
+ *) echo "Invalid option $REPLY";;
|
|
|
|
|
+ esac
|
|
|
|
|
+ done
|
|
|
|
|
+ fi
|
|
|
|
|
+ read
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+function voip_server_state {
|
|
|
|
|
+ # Check if pm2 is installed
|
|
|
|
|
+ if ! command -v pm2 &> /dev/null; then
|
|
|
|
|
+ echo "pm2 is not installed."
|
|
|
|
|
+ echo "Do you want to setup pm2? (y/n)"
|
|
|
|
|
+ read -r setup_pm2
|
|
|
|
|
+ if [[ "$setup_pm2" =~ ^[Yy]$ ]]; then
|
|
|
|
|
+ install_pm2
|
|
|
|
|
+ echo "pm2 has been installed."
|
|
|
|
|
+ else
|
|
|
|
|
+ echo "pm2 is required to run the voip_server application. Please install pm2 and try again."
|
|
|
|
|
+ exit 1
|
|
|
|
|
+ fi
|
|
|
|
|
+ fi
|
|
|
|
|
+
|
|
|
|
|
+ # Check if voip_server is running in pm2
|
|
|
|
|
+ if pm2 list | grep -q "voip_server"; then
|
|
|
|
|
+ echo "voip_server is already running in pm2"
|
|
|
|
|
+ echo "Do you want to restart voip_server? (y/n)"
|
|
|
|
|
+ read -r restart_voip_server
|
|
|
|
|
+ if [[ "$restart_voip_server" =~ ^[Yy]$ ]]; then
|
|
|
|
|
+ pm2 restart voip_server
|
|
|
|
|
+ echo "voip_server has been restarted in pm2"
|
|
|
|
|
+ fi
|
|
|
|
|
+ else
|
|
|
|
|
+ cd "$voip_server_path"
|
|
|
|
|
+ pm2 start server.js --name voip_server
|
|
|
|
|
+ pm2 startup > /dev/null 2>&1
|
|
|
|
|
+ pm2 save > /dev/null 2>&1
|
|
|
|
|
+ echo "voip_server has been started in pm2"
|
|
|
|
|
+ fi
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+function edit_env {
|
|
|
|
|
+ # Check if .env file exists
|
|
|
|
|
+ if [ -f $voip_server_path.env ]; then
|
|
|
|
|
+ echo ".env file exists"
|
|
|
|
|
+ else
|
|
|
|
|
+ if [ -f $voip_server_path.envSample ]; then
|
|
|
|
|
+ # Copy .envSample to .env
|
|
|
|
|
+ cp $voip_server_path.envSample $voip_server_path.env
|
|
|
|
|
+ else
|
|
|
|
|
+ echo ".envSample file does not exist"
|
|
|
|
|
+ exit 1
|
|
|
|
|
+ fi
|
|
|
|
|
+ fi
|
|
|
|
|
+
|
|
|
|
|
+ source $voip_server_path.env
|
|
|
|
|
+
|
|
|
|
|
+ sed -i 's/ *= */=/g' $voip_server_path.env
|
|
|
|
|
+
|
|
|
|
|
+ declare -A env=()
|
|
|
|
|
+
|
|
|
|
|
+ while true; do
|
|
|
|
|
+ clear
|
|
|
|
|
+ n=0
|
|
|
|
|
+
|
|
|
|
|
+ select line in $(grep '^[[:alnum:]]' $voip_server_path.env); do # Use grep to filter out lines starting with # or empty
|
|
|
|
|
+ if [ -n "$line" ]; then
|
|
|
|
|
+ key=$(echo "$line" | cut -d '=' -f1)
|
|
|
|
|
+ value=$(echo "$line" | cut -d '=' -f2)
|
|
|
|
|
+ echo "Current $key: $value"
|
|
|
|
|
+ if [[ $value == *"'"* ]] || [[ $value == *"\""* ]]; then
|
|
|
|
|
+ read -p "Enter new $key or press enter to keep it: " new_value
|
|
|
|
|
+ if [ -n "$new_value" ]; then
|
|
|
|
|
+ if [[ $new_value != *"'"* ]] && [[ $new_value != *"\""* ]] ; then
|
|
|
|
|
+ sed -i "s/^$key=.*/$key='$new_value'/" $voip_server_path.env
|
|
|
|
|
+ else
|
|
|
|
|
+ sed -i "s/^$key=.*/$key=$new_value/" $voip_server_path.env
|
|
|
|
|
+ fi
|
|
|
|
|
+ env[$key]=$new_value
|
|
|
|
|
+ source $voip_server_path.env
|
|
|
|
|
+ echo "Saved changes."
|
|
|
|
|
+ else
|
|
|
|
|
+ echo "Keeping old value."
|
|
|
|
|
+ fi
|
|
|
|
|
+ else
|
|
|
|
|
+ read -p "Enter new $key or press enter to keep it: " new_value
|
|
|
|
|
+ if [ -n "$new_value" ]; then
|
|
|
|
|
+ sed -i "s/^$key=.*/$key=$new_value/" $voip_server_path.env
|
|
|
|
|
+
|
|
|
|
|
+ env[$key]=$new_value
|
|
|
|
|
+ source $voip_server_path.env
|
|
|
|
|
+ echo "Saved changes."
|
|
|
|
|
+ else
|
|
|
|
|
+ echo "Keeping old value."
|
|
|
|
|
+ fi
|
|
|
|
|
+ fi
|
|
|
|
|
+ break
|
|
|
|
|
+ else
|
|
|
|
|
+ echo "Exiting."
|
|
|
|
|
+ break 2
|
|
|
|
|
+ fi
|
|
|
|
|
+ done
|
|
|
|
|
+ clear
|
|
|
|
|
+ done
|
|
|
|
|
+ echo "Done."
|
|
|
|
|
+
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+setup_network() {
|
|
|
|
|
+ find /etc/sysconfig/network-scripts/ -name "ifcfg-*" -type f -exec sed -i 's/ONBOOT=no/ONBOOT=yes/g' {} \;
|
|
|
|
|
+ printf "${Green}network boot active\n${Color_Off}"
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+correct_timezone(){
|
|
|
|
|
+ zic asia > /dev/null 2>&1
|
|
|
|
|
+ zic -l Asia/Tehran > /dev/null 2>&1
|
|
|
|
|
+ sudo timedatectl set-timezone Asia/Tehran
|
|
|
|
|
+
|
|
|
|
|
+ printf "${Green}time zone has been corrected\n${Color_Off}"
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+########################################################
|
|
|
|
|
+
|
|
|
|
|
+setup_new_project() {
|
|
|
|
|
+
|
|
|
|
|
+ install_dependencies
|
|
|
|
|
+ create_db
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+update_centos(){
|
|
|
|
|
+ update
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+install_dependencies() {
|
|
|
|
|
+ install_packages
|
|
|
|
|
+ install_node
|
|
|
|
|
+ install_pm2
|
|
|
|
|
+ install_git_v2
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+create_db() {
|
|
|
|
|
+ create_mysql_db
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+remove_setup_folder(){
|
|
|
|
|
+ cd script_path
|
|
|
|
|
+ cd ../
|
|
|
|
|
+ rm -rf voip_server_initial_setup
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+update_script(){
|
|
|
|
|
+ cd $script_path
|
|
|
|
|
+ git pull
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+cd $script_path
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+########################################################
|
|
|
|
|
+
|
|
|
|
|
+printf "${Green}\n=========================START==============================\n${Color_Off}"
|
|
|
|
|
+
|
|
|
|
|
+while true; do
|
|
|
|
|
+ printf "${Cyan}"
|
|
|
|
|
+ echo "Menu:"
|
|
|
|
|
+ echo "1) setup new"
|
|
|
|
|
+ echo "2) update centos(need internet)"
|
|
|
|
|
+ echo "3) setup dependencies"
|
|
|
|
|
+ echo "4) create ebtekar db"
|
|
|
|
|
+ echo "5) setup voip server"
|
|
|
|
|
+ echo "6) set network boot active"
|
|
|
|
|
+ echo "7) correct timezone"
|
|
|
|
|
+ echo "8) install git"
|
|
|
|
|
+ echo "9) check update"
|
|
|
|
|
+ echo "0) Exit"
|
|
|
|
|
+ read -p "Enter your choice: " choice
|
|
|
|
|
+
|
|
|
|
|
+ tput cuu 8 && tput ed && printf "${Color_Off}\n"
|
|
|
|
|
+
|
|
|
|
|
+ case $choice in
|
|
|
|
|
+ 1) printf "${Cyan}setup new${Color_Off}\n" && setup_new_project ;;
|
|
|
|
|
+ 2) printf "${Cyan}update centos(need internet)${Color_Off}\n" && update_centos ;;
|
|
|
|
|
+ 3) printf "${Cyan}setup dependencies${Color_Off}\n" && install_dependencies ;;
|
|
|
|
|
+ 4) printf "${Cyan}create ebtekar db${Color_Off}\n" && create_db ;;
|
|
|
|
|
+ 5) printf "${Cyan}restore database${Color_Off}\n" && setup_voip_server ;;
|
|
|
|
|
+ 6) printf "${Cyan}setup network${Color_Off}\n" && setup_network ;;
|
|
|
|
|
+ 7) printf "${Cyan}correct timezone${Color_Off}\n" && correct_timezone ;;
|
|
|
|
|
+ 8) printf "${Cyan}install git${Color_Off}\n" && install_git_v2 ;;
|
|
|
|
|
+ 9) printf "${Cyan}check update${Color_Off}\n" && update_script ;;
|
|
|
|
|
+ 0) break ;;
|
|
|
|
|
+ *) echo "Invalid choice";;
|
|
|
|
|
+ esac
|
|
|
|
|
+
|
|
|
|
|
+ printf "\n"
|
|
|
|
|
+done
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+printf "${Green}\n=========================DONE==============================\n${Color_Off}"
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|