Toby Chui 2 жил өмнө
parent
commit
4195662ca3
1 өөрчлөгдсөн 154 нэмэгдсэн , 0 устгасан
  1. 154 0
      installer/installer.sh

+ 154 - 0
installer/installer.sh

@@ -0,0 +1,154 @@
+#!/bin/bash
+echo "----- ArozOS 2.0 Installer -----"
+
+# Prompt the user to agree to the GPLv3 license
+read -p "Do you agree to the terms of the GPLv3 license? (y/n) " agree
+
+if [[ $agree != "y" ]]; then
+  echo "You must agree to the GPLv3 license to use ArozOS."
+  exit 1
+fi
+
+# Create the required folder structure to hold the installation
+cd ~/ || exit
+mkdir arozos
+cd arozos || exit
+
+# Run apt-updates
+sudo apt-get update
+sudo apt-get install ffmpeg net-tools -y
+
+# Determine the CPU architecture of the host
+if [[ $(uname -m) == "x86_64" ]]; then
+  arch="amd64"
+elif [[ $(uname -m) == "aarch64" ]]; then
+  arch="arm64"
+elif [[ $(uname -m) == "armv"* ]]; then
+  arch="arm"
+else
+  read -p "Enter the target architecture (e.g. darwin_amd64, windows_amd64): " arch
+fi
+
+# Download the corresponding executable from Github
+if [[ $arch == "amd64" ]]; then
+  download_url="https://github.com/tobychui/arozos/releases/latest/download/arozos_linux_amd64"
+elif [[ $arch == "arm64" ]]; then
+  download_url="https://github.com/tobychui/arozos/releases/latest/download/arozos_linux_arm64"
+elif [[ $arch == "arm" ]]; then
+  download_url="https://github.com/tobychui/arozos/releases/latest/download/arozos_linux_arm"
+elif [[ $arch == "windows_amd64" ]]; then
+  download_url="https://github.com/tobychui/arozos/releases/latest/download/arozos_windows_amd64.exe"
+elif [[ $arch == "windows_arm64" ]]; then
+  download_url="https://github.com/tobychui/arozos/releases/latest/download/arozos_windows_arm64.exe"
+else
+  download_url="https://github.com/tobychui/arozos/releases/latest/download/arozos_${arch}"
+fi
+
+# Download the arozos binary
+echo "Downloading Arozos from ${download_url} ..."
+wget -O arozos "${download_url}"
+chmod +x arozos
+
+# Download the webpack
+wget -O web.tar.gz "https://github.com/tobychui/arozos/releases/latest/download/web.tar.gz"
+
+# Check if the platform is supported for the launcher
+if [[ "$arch" == "amd64" || "$arch" == "arm" || "$arch" == "arm64" ]]; then
+  # Ask if the user wants to install the launcher
+  read -p "Do you want to install the Arozos launcher for OTA updates? [Y/n] " answer
+  case ${answer:0:1} in
+      y|Y )
+          # Download the appropriate binary
+          echo "Downloading Arozos launcher from https://github.com/aroz-online/launcher/releases/latest/ ..."
+          case "$arch" in
+              amd64)
+                  launcher_url="https://github.com/aroz-online/launcher/releases/latest/download/launcher_linux_amd64"
+                  ;;
+              arm)
+                  launcher_url="https://github.com/aroz-online/launcher/releases/latest/download/launcher_linux_arm"
+                  ;;
+              arm64)
+                  launcher_url="https://github.com/aroz-online/launcher/releases/latest/download/launcher_linux_arm64"
+                  ;;
+              *)
+                  echo "Unsupported architecture for Arozos launcher"
+                  ;;
+          esac
+          if [[ -n "$launcher_url" ]]; then
+              wget -O launcher "${launcher_url}"
+              chmod +x launcher
+              echo "Arozos launcher has been installed successfully!"
+          fi
+          ;;
+      * )
+          echo "Arozos launcher installation skipped"
+          ;;
+  esac
+fi
+
+# Ask for setup name
+read -p "Enter setup name (default: aroz): " arozosname
+arozosname=${arozosname:-aroz}
+
+# Ask for preferred listening port
+read -p "Enter preferred listening port (default: 8080): " arozport
+arozport=${arozport:-8080}
+
+# Check if launcher exists
+if [[ -f "./launcher" ]]; then
+  # Create start.sh with launcher command
+  echo "#!/bin/bash" > start.sh
+  echo "sudo ./launcher -port=$arozport -hostname=\"$arozosname\"" >> start.sh
+else
+  # Create start.sh with arozos command
+  echo "#!/bin/bash" > start.sh
+  echo "sudo arozos -port=$arozport -hostname=\"$arozosname\"" >> start.sh
+fi
+
+# Make start.sh executable
+chmod +x start.sh
+
+echo "Setup name: $arozosname"
+echo "Preferred listening port: $arozport"
+echo "start.sh created successfully!"
+
+# Ask if user wants to install ArozOS to systemd
+if [[ $(uname) == "Linux" ]]; then
+    read -p "Do you want to install ArozOS to systemd service? (y/n)" -n 1 -r
+    echo
+    if [[ $REPLY =~ ^[Yy]$ ]]; then
+        # Get current user
+        CURRENT_USER=$(whoami)
+		
+		sudo touch /etc/systemd/system/arozos.service
+		sudo chmod 777 /etc/systemd/system/arozos.service
+        # Create systemd service file
+        cat <<EOF > /etc/systemd/system/arozos.service
+[Unit]
+Description=ArozOS Cloud Service
+After=systemd-networkd-wait-online.service
+Wants=systemd-networkd-wait-online.service
+
+[Service]
+Type=simple
+ExecStartPre=/bin/sleep 10
+WorkingDirectory=/home/${CURRENT_USER}/arozos/
+ExecStart=/bin/bash /home/${CURRENT_USER}/arozos/start.sh
+
+Restart=always
+RestartSec=10
+
+[Install]
+WantedBy=multi-user.target
+EOF
+		sudo chmod 644 /etc/systemd/system/arozos.service
+		
+        # Reload systemd daemon and enable service
+        sudo systemctl daemon-reload
+        sudo systemctl enable arozos.service
+		sudo systemctl start arozos.service
+        echo "ArozOS installation completed!"
+    fi
+else
+	echo "ArozOS installation completed! Execute start.sh to startup your ArozOS system."
+fi