diff --git a/Linux/Syncthing/README.md b/Linux/Syncthing/README.md new file mode 100644 index 0000000..c20f676 --- /dev/null +++ b/Linux/Syncthing/README.md @@ -0,0 +1,5 @@ +#Syncthing Custom Setup +Just a small automation script to install Syncthing using Supervisor for service management, custom install locations, etc. +The Script is still Under Construction, use it with caution + +Currently this script only works with Debian based systems. diff --git a/Linux/Syncthing/install_syncthing.sh b/Linux/Syncthing/install_syncthing.sh new file mode 100644 index 0000000..ef8b72c --- /dev/null +++ b/Linux/Syncthing/install_syncthing.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# Elevate Privelage + +echo "This Script has to be ran as Sudo" +sudo -v + +sudo apt install net-tools + +# Set Variables +ip=$(sudo ifconfig eth0 | perl -ne 'print $1 if /inet\s.*?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b/') + +echo "Please enter Syncthing Version required" +read syncthingversion + +# Setup Syncthing User +adduser \ + --system \ + --shell /bin/bash \ + --gecos 'Syncthing Client' \ + --group \ + --disabled-password \ + --home /opt/syncthing/config \ + git + +# Setup Folders + +sudo mkdir /opt/syncthing +sudo chown syncthing -R /opt/syncthing +sudo chgrp $(echo "$USER") -R /opt/syncthing +sudo chmod 770 /opt/syncthing +mkdir /opt/syncthing/config +mkdir /opt/syncthing/bin +mkdir /opt/syncthing/bin/current + +# Get Syncthing and setup +cd /opt/syncthing/bin +wget https://github.com/syncthing/syncthing/releases/download/v$syncthingversion/syncthing-linux-amd64-v$syncthingversion.tar.gz +untar syncthing-linux-amd64-v$syncthingversion.tar.gz +cp -r syncthing-linux-amd64-v$syncthingversion/* /opt/syncthing/bin/current +sudo ln -f /opt/syncthing/bin/current/syncthing /usr/local/bin/syncthing + +# Setup Supervisor + +sudo apt-get install supervisor + +sudo cat < /etc/supervisor/conf.d/syncthing.conf +[program:syncthing] +autorestart = True +directory = /opt/syncthing/config +user = sycthing +command = /usr/local/bin/syncthing -no-browser -logflags=0 -gui-address=$ip:8384 -home=/opt/syncthing/config/ +environment = STNORESTART="1", HOME="/opt/syncthing/config/" +EOF + +sudo service supervisor restart +sudo supervisorctl reread +sudo supervisorctl update + +echo "If everything installed with no errors" +echo "Please go to http://$ip:8384"