mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2025-12-07 09:36:05 -08:00
Adds bare metal installer for ubuntu. Tested with version 24.04. You may want to or have to change the PHPVERSION variable in the start script for other versions
87 lines
3.0 KiB
Bash
87 lines
3.0 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# 🛑 Important: This is only used for the bare-metal install 🛑
|
|
# Update /install/start.ubuntu.sh in most cases is preferred
|
|
|
|
echo "---------------------------------------------------------"
|
|
echo "[INSTALL] Starting NetAlertX installation for Ubuntu"
|
|
echo "---------------------------------------------------------"
|
|
echo
|
|
echo "This script will install NetAlertX on your Ubuntu system."
|
|
echo "It will clone the repository, set up necessary files, and start the application."
|
|
echo "Please ensure you have a stable internet connection."
|
|
echo "---------------------------------------------------------"
|
|
|
|
# Set environment variables
|
|
INSTALL_DIR=/app # Specify the installation directory here
|
|
|
|
# Check if script is run as root
|
|
if [[ $EUID -ne 0 ]]; then
|
|
echo "This script must be run as root. Please use 'sudo'."
|
|
exit 1
|
|
fi
|
|
|
|
# Prepare the environment
|
|
echo "Updating packages"
|
|
echo "-----------------"
|
|
apt-get update
|
|
echo "Making sure sudo is installed"
|
|
apt-get install sudo -y
|
|
|
|
# Install Git
|
|
echo "Installing Git"
|
|
apt-get install -y git
|
|
|
|
# Clean the directory, ask for confirmation
|
|
if [ -d "$INSTALL_DIR" ]; then
|
|
echo "The installation directory exists. Removing it to ensure a clean install."
|
|
echo "Are you sure you want to continue? This will delete all existing files in $INSTALL_DIR."
|
|
echo "Type:"
|
|
echo " - 'install' to continue"
|
|
echo " - 'update' to just update from GIT"
|
|
echo " - 'start' to do nothing, leave install as-is"
|
|
if [ "$1" == "install" ] || [ "$1" == "update" ] || [ "$1" == "start" ]; then
|
|
confirmation=$1
|
|
else
|
|
read -p "Enter your choice: " confirmation
|
|
fi
|
|
if [ "$confirmation" == "install" ]; then
|
|
if [ -n "$INSTALL_DIR" ] && [ "$INSTALL_DIR" != "" ]; then
|
|
echo "Removing existing installation..."
|
|
service nginx stop 2>/dev/null
|
|
pkill -f "python /app/server" 2>/dev/null
|
|
umount "$INSTALL_DIR/api" 2>/dev/null
|
|
umount "$INSTALL_DIR/front" 2>/dev/null
|
|
rm -rf "$INSTALL_DIR/"
|
|
git clone https://github.com/jokob-sk/NetAlertX "$INSTALL_DIR/"
|
|
else
|
|
echo "INSTALL_DIR is not set or is root. Aborting for safety."
|
|
exit 1
|
|
fi
|
|
elif [ "$confirmation" == "update" ]; then
|
|
echo "Updating the existing installation..."
|
|
service nginx stop 2>/dev/null
|
|
pkill -f "python /app/server" 2>/dev/null
|
|
cd "$INSTALL_DIR" || { echo "Failed to change directory to $INSTALL_DIR"; exit 1; }
|
|
git pull
|
|
elif [ "$confirmation" == "start" ]; then
|
|
echo "Continuing without changes."
|
|
else
|
|
echo "Installation aborted."
|
|
exit 1
|
|
fi
|
|
else
|
|
git clone https://github.com/jokob-sk/NetAlertX "$INSTALL_DIR/"
|
|
fi
|
|
|
|
# Check for buildtimestamp.txt existence, otherwise create it
|
|
if [ ! -f "$INSTALL_DIR/front/buildtimestamp.txt" ]; then
|
|
date +%s > "$INSTALL_DIR/front/buildtimestamp.txt"
|
|
fi
|
|
|
|
# Start NetAlertX
|
|
|
|
# This is where we setup the virtual environment and install dependencies
|
|
cd "$INSTALL_DIR/install/ubuntu" || { echo "Failed to change directory to $INSTALL_DIR/install/ubuntu"; exit 1; }
|
|
"$INSTALL_DIR/install/ubuntu/start.ubuntu.sh"
|