Implement install and update system for the bot
- LINUX OR WINDOW WSL ONLY
This commit is contained in:
@@ -185,3 +185,10 @@ exports.removePreset = async (req, res) => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs the updater service
|
||||||
|
*/
|
||||||
|
exports.updateClient = async (req, res) => {
|
||||||
|
await executeAsyncConsoleCommand("systemctl start RadioNodeUpdater.service");
|
||||||
|
return res.sendStatus(200);
|
||||||
|
}
|
||||||
|
|||||||
7
Client/restartSdrScanner.sh
Normal file
7
Client/restartSdrScanner.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This script should be another service on the machine to watch the main script for failures and restart it if there are any
|
||||||
|
|
||||||
|
( tail -f -n0 /opt/sdr-scanner/scanner_log & ) | grep -q ": cb transfer status: 1, canceling..."
|
||||||
|
systemctl restart radioNode.service
|
||||||
|
echo "Restarted SDR Scanner service"
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
const express = require('express');
|
const express = require('express');
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
// Controllers
|
// Controllers
|
||||||
const {requestCheckIn, getPresets, updatePreset, addNewPreset, removePreset} = require("../controllers/clientController");
|
const { requestCheckIn, getPresets, updatePreset, addNewPreset, removePreset, updateClient } = require("../controllers/clientController");
|
||||||
|
|
||||||
/** GET Request a check in from the client
|
/** GET Request a check in from the client
|
||||||
* Queue the client to check in with the server
|
* Queue the client to check in with the server
|
||||||
@@ -45,4 +45,10 @@ router.post('/addPreset', addNewPreset);
|
|||||||
router.post('/removePreset', removePreset);
|
router.post('/removePreset', removePreset);
|
||||||
|
|
||||||
|
|
||||||
|
/** POST Update the bot
|
||||||
|
*
|
||||||
|
* @param req The request sent from the master
|
||||||
|
*/
|
||||||
|
router.post('/updateClient', updateClient);
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|||||||
@@ -5,6 +5,16 @@ if [ "$EUID" -ne 0 ]
|
|||||||
then echo "Please run as root"
|
then echo "Please run as root"
|
||||||
exit
|
exit
|
||||||
fi
|
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
|
||||||
|
|
||||||
|
# Change the ownership of the directory to the service user
|
||||||
|
chown RadioNode -R $SCRIPT_DIR
|
||||||
|
|
||||||
# Check for updates
|
# Check for updates
|
||||||
apt-get update
|
apt-get update
|
||||||
@@ -26,4 +36,41 @@ pulseaudio
|
|||||||
npm i
|
npm i
|
||||||
|
|
||||||
# Install the python packages needed for the bot
|
# Install the python packages needed for the bot
|
||||||
pip install -r
|
pip install -r
|
||||||
|
|
||||||
|
# Setup bot service
|
||||||
|
echo "[Unit]
|
||||||
|
Description=Radio Node Service
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
WorkingDirectory=
|
||||||
|
ExecStart=/usr/bin/node .
|
||||||
|
Restart=always
|
||||||
|
RestartDelay=10
|
||||||
|
User=RadioNode
|
||||||
|
Environment=DEBUG='server:*'
|
||||||
|
|
||||||
|
[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=
|
||||||
|
ExecStart=/usr/bin/node .
|
||||||
|
Restart=on-failure
|
||||||
|
User=RadioNode
|
||||||
|
Environment=DEBUG='server:*'
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target" >> /etc/systemd/system/RadioNodeUpdater.service
|
||||||
|
|
||||||
|
# Enable the service
|
||||||
|
systemctl enable RadioNode.service
|
||||||
|
|
||||||
|
# Start the service
|
||||||
|
systemctl start RadioNode.service
|
||||||
@@ -1,15 +1,32 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Check if the user is root
|
||||||
|
if [ "$EUID" -ne 0 ]
|
||||||
|
then echo "Please run as root"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Sleeping to give the client time to respond to the requester
|
||||||
|
sleep 5
|
||||||
|
|
||||||
# Stating Message
|
# Stating Message
|
||||||
echo "<!-- UPDATING ---!>"
|
echo "<!-- UPDATING ---!>"
|
||||||
|
|
||||||
# TODO - Add an updater for Stable Diffusion API
|
# TODO - Add an updater for Stable Diffusion API
|
||||||
|
|
||||||
|
# Stop any running service
|
||||||
|
systemctl stop RadioNode
|
||||||
|
|
||||||
# Update the git Repo
|
# Update the git Repo
|
||||||
git fetch -a -p
|
installUser=$(cat ./config/installerName)
|
||||||
git pull
|
sudo su -l $installUser -c 'git fetch -a -p'
|
||||||
|
sudo su -l $installUser -c 'git pull'
|
||||||
|
|
||||||
# Install any new libraries
|
# Install any new libraries
|
||||||
npm i
|
npm i
|
||||||
|
|
||||||
|
# Start the service
|
||||||
|
systemctl start RadioNode
|
||||||
|
|
||||||
# Update complete message
|
# Update complete message
|
||||||
echo "<!--- UPDATE COMPLETE! ---!>"
|
echo "<!--- UPDATE COMPLETE! ---!>"
|
||||||
Reference in New Issue
Block a user