#!/bin/sh # To run from Internet: # sudo sh -c "$(curl -s http://apps.control2net.com/apt/install-lorawan-gateway)" echo "Check Node.js..." nodejs=$(nodejs --version 2>&1 | grep v) if [ -z "$nodejs" ]; then echo "Install Node.js first. Instructions:" echo " sudo su" echo " curl -sL https://deb.nodesource.com/setup_10.x | bash -" echo " apt-get install -y nodejs" exit 0 fi DIRECTORY="/usr/lib/node_modules/lorawangateway" if [ ! -d "$DIRECTORY" ]; then echo "..." else echo "Take backup..." cp -p /usr/lib/node_modules/lorawangateway/sensors.json /usr/lib/node_modules/lorawangateway/sensors.`date +%Y%m%d%H%M%S` DIRECTORYBACKUP="/opt/GoIoT/backup" if [ ! -d "$DIRECTORYBACKUP" ]; then mkdir /opt/GoIoT/backup sudo chmod 0755 /opt/GoIoT/backup fi DIRECTORYTMPBACKUP="/opt/GoIoT/tmplorawangatewaybackup" if [ ! -d "$DIRECTORYTMPBACKUP" ]; then mkdir /opt/GoIoT/tmplorawangatewaybackup sudo chmod 0755 /opt/GoIoT/tmplorawangatewaybackup fi cp -p /usr/lib/node_modules/lorawangateway/sensors.json /opt/GoIoT/backup/sensors.`date +%Y%m%d%H%M%S` cp -p /usr/lib/node_modules/lorawangateway/sensors.json /opt/GoIoT/tmplorawangatewaybackup/ fi echo "Install LoRaWAN Gateway from Internet..." sudo npm install -g http://apps.control2net.com/apt/lorawan/lorawangateway-1.0.0.tgz sudo chmod -R 755 /usr/lib/node_modules/lorawangateway #sudo chmod -R 644 /usr/lib/node_modules/lorawangateway #sudo chmod -R +X /usr/lib/node_modules/lorawangateway/ DIRECTORYTMPBACKUP="/opt/GoIoT/tmplorawangatewaybackup" if [ -d "$DIRECTORYTMPBACKUP" ]; then cd /opt/GoIoT/tmplorawangatewaybackup sudo cp -p sensors.json /usr/lib/node_modules/lorawangateway/ sudo rm -r /opt/GoIoT/tmplorawangatewaybackup fi echo "Setup service..." cd /usr/lib/node_modules/lorawangateway/systemd sudo cp -p lorawan-gateway.service /lib/systemd/system sudo systemctl daemon-reload echo "Copy scripts..." cd /usr/lib/node_modules/lorawangateway/bin sudo chmod +x lorawan* sudo cp -p lorawan* /opt/GoIoT/DinGo/bin echo "Start service...." sudo systemctl enable lorawan-gateway.service sudo systemctl restart lorawan-gateway.service echo "Finished." echo "Use these commands to control the service:" echo " lorawan-gateway-status (show service status)" echo " lorawan-gateway-start (start the service)" echo " lorawan-gateway-stop (stop the service)" echo " lorawan-gateway-restart (restart the service)" echo " lorawan-gateway-enable (service starts after reboot)" echo " lorawan-gateway-disable (service does not start after reboot)" echo " lorawan-gateway (start gateway directly, not as service)" echo " journalctl -f -u lorawan-gateway.service (show real-time log)"