#!/bin/bash # Check if the user is root if [ "$EUID" -ne 0 ] then echo "Please run as root" exit fi SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) ls -ld $SCRIPT_DIR | awk '{print $3}' >> ./config/installerName # Setup user for service useradd -M RadioNode usermod -s -L RadioNode # Create the .env file from the example cp $SCRIPT_DIR/.env.example $SCRIPT_DIR/.env # Change the ownership of the directory to the service user chown RadioNode -R $SCRIPT_DIR # Check for updates apt-get update # Install Node Repo curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash - # Update the system apt-get update apt-get upgrade -y # Install the necessary packages apt-get install -y nodejs portaudio19-dev libportaudio2 libpulse-dev pulseaudio apulse python3 python3-pip # Ensure pulse audio is running pulseaudio # Install the node packages from the project npm i # Install the python packages needed for the bot pip install -r # Setup bot service echo "[Unit] Description=Radio Node Service After=network.target [Service] WorkingDirectory="$SCRIPT_DIR" ExecStart=/usr/bin/node . Restart=always RestartDelay=10 User=RadioNode Environment=DEBUG='client:*' [Install] WantedBy=multi-user.target" >> /etc/systemd/system/RadioNode.service # Setup bot update service echo "[Unit] Description=Radio Node Updater Service After=network.target [Service] WorkingDirectory="$SCRIPT_DIR" ExecStart=/usr/bin/bash update.sh Restart=on-failure User=RadioNode [Install] WantedBy=multi-user.target" >> /etc/systemd/system/RadioNodeUpdater.service # Enable the service systemctl enable RadioNode.service # Start the service systemctl start RadioNode.service