/lib/systemd/system/rtalk.service // copy this file Create the app user sudo groupadd -r rtalk sudo useradd -r -s /bin/false -g rtalk rtalkadmin //system user with no shell in group Own the project directory (what about the others?) sudo chown -R rtalkadmin:rtalk /usr/lib/rtalk sudo chown -R rtalkadmin:rtalk /etc/rtalk sudo chown -R rtalkadmin:rtalk /var/rtalk for rtalk /usr/lib/rtalk/jars/ analysis.jar ritdbEvents.jar remoteGuru.jar rtalkCore.jar sqlite-jdbc... jmdns rtalkMqtt.jar javaxmail.jar /etc/rtalk/ ..config files. .. guruKey.dat bootServer.txt /var/rtalk/tmp /var/rtalk/repo sudo systemctl reload-or-restart rtalk.service // if files are changed File locations Mosquito /usr/sbin/mosquitto.exe /etc/mosquitto/ ..config files /var/log/mosquitto/ /tmp/sqlite.lib /lib/systemd/system/mosqlitto.service on startup the initial java file checks the local repo via a direct query looking for an new version (check valid time) copies the jar/zip to a temp directory and then adds that to the classpath and then continues.