#!/bin/sh # https://github.com/gotthardp/lorawan-server/blob/master/doc/Installation.md # To run from Internet: # sudo sh -c "$(curl -s http://apps.control2net.com/apt/install-compact-lorawan-server)" DIRECTORYTMPBACKUP="/opt/GoIoT/tmpcompactlorawanserverbackup" if [ ! -d "$DIRECTORYTMPBACKUP" ]; then mkdir /opt/GoIoT/tmpcompactlorawanserverbackup sudo chmod 0755 /opt/GoIoT/tmpcompactlorawanserverbackup fi FILE="/usr/lib/lorawan-server/bin/lorawan-server" if [ -f "$FILE" ]; then echo "SERVER IS ALREADY INSTALLED !" #exit 0 else # Special Debian Buster case. version=$(cat /etc/os-release | grep VERSION_ID= | cut -d'"' -f2) if [ "$version" -eq "10" ]; then echo "Installing the Erlang/OTP 21.0 or later..." cd ~ wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb sudo dpkg -i erlang-solutions_1.0_all.deb fi echo "Install dependencies..." cd ~ sudo apt-get update sudo apt-get -y install apt-transport-https sudo apt-get -y install erlang-base erlang-crypto erlang-syntax-tools erlang-inets \ erlang-mnesia erlang-runtime-tools erlang-ssl erlang-public-key erlang-asn1 \ erlang-os-mon erlang-snmp erlang-xmerl echo "Install lorawan-server..." wget https://github.com/gotthardp/lorawan-server/releases/download/v0.6.7/lorawan-server_0.6.7_all.deb sudo dpkg -i lorawan-server_0.6.7_all.deb sudo systemctl enable lorawan-server cd /opt/GoIoT/tmpcompactlorawanserverbackup wget http://apps.control2net.com/apt/lorawan/Erlang/sys.txt cp sys.txt /usr/lib/lorawan-server/releases/0.6.7/sys.config # THIS SHOULD ALSO BE INSTALLED FOR BUSTER #if [ "$version" -eq "9" ]; then echo "Installing the Erlang/OTP 24.0..." cd /opt/GoIoT/tmpcompactlorawanserverbackup wget http://apps.control2net.com/apt/lorawan/Erlang/erlang24.tar.gz sudo tar -xzf erlang24.tar.gz -C /opt sudo ln -sfn /opt/erlang/24/bin/ct_run /usr/local/bin/ sudo ln -sfn /opt/erlang/24/bin/dialyzer /usr/local/bin/ sudo ln -sfn /opt/erlang/24/bin/epmd /usr/local/bin/ sudo ln -sfn /opt/erlang/24/bin/erl /usr/local/bin/ sudo ln -sfn /opt/erlang/24/bin/erlc /usr/local/bin/ sudo ln -sfn /opt/erlang/24/bin/escript /usr/local/bin/ sudo ln -sfn /opt/erlang/24/bin/run_erl /usr/local/bin/ sudo ln -sfn /opt/erlang/24/bin/to_erl /usr/local/bin/ sudo ln -sfn /opt/erlang/24/bin/typer /usr/local/bin/ #fi #sudo systemctl start lorawan-server echo "Finished." fi echo "Take backup..." DIRECTORYBACKUP="/opt/GoIoT/backup" if [ ! -d "$DIRECTORYBACKUP" ]; then mkdir /opt/GoIoT/backup sudo chmod 0755 /opt/GoIoT/backup fi cp -p /usr/lib/lorawan-server/releases/0.6.7/sys.config /opt/GoIoT/backup/lorawan_compact_sys.config.`date +%Y%m%d%H%M%S` echo "Install any new decoders (internal applications)..." sudo systemctl stop lorawan-server cd /opt/GoIoT/tmpcompactlorawanserverbackup wget http://apps.control2net.com/apt/lorawan/Erlang/internal-applications.txt wget -i internal-applications.txt cp *.beam /usr/lib/lorawan-server/lib/lorawan_server-0.6.7/ebin/ wget http://apps.control2net.com/apt/lorawan/Erlang/sys-addon.txt lines=$(cat /opt/GoIoT/tmpcompactlorawanserverbackup/sys-addon.txt) lines=`echo ${lines} | tr '\n' "\\n"` if grep -q "applications," /usr/lib/lorawan-server/releases/0.6.7/sys.config; then #sed -i "/{applications,/,/]},/c$lines" /usr/lib/lorawan-server/releases/0.6.7/sys.config sed -i "/{applications/c$lines" /usr/lib/lorawan-server/releases/0.6.7/sys.config else #sed -i '/^\s*{lorawan_server/r sys-addon.txt' /usr/lib/lorawan-server/releases/0.6.7/sys.config sed -i "/{lorawan_server/a$lines" /usr/lib/lorawan-server/releases/0.6.7/sys.config fi DIRECTORYTMPBACKUP="/opt/GoIoT/tmpcompactlorawanserverbackup" if [ -d "$DIRECTORYTMPBACKUP" ]; then sudo rm -r /opt/GoIoT/tmpcompactlorawanserverbackup fi echo "Starting lorawan-server service..." sudo systemctl start lorawan-server echo "Finished." echo "Use these commands to control the service:" echo " sudo systemctl status lorawan-server (show service status)" echo " sudo systemctl start lorawan-server (start the service)" echo " sudo systemctl stop lorawan-server (stop the service)" echo " sudo systemctl restart lorawan-server (restart the service)" echo " sudo systemctl enable lorawan-server (service starts after reboot)" echo " sudo systemctl disable lorawan-server (service does not start after reboot)" echo " /usr/lib/lorawan-server/bin/lorawan-server (start server directly, not as service)" echo " journalctl -f -u lorawan-server.service (show service log)" echo " sudo tail -f /var/log/lorawan-server/debug.log (show application log)" echo " Web-administration: http://localhost:8080 (Default credentials admin, admin)"