syncthing-install/syncthing-install-auto-serveur.sh

144 lines
3.6 KiB
Bash
Raw Permalink Normal View History

#! /bin/bash
#########################################################
# Inclusions
#########################################################
# Variables partagées
# releases url : https://github.com/syncthing/syncthing/releases/
2024-08-19 18:06:42 +02:00
version="1.27.10"
2023-08-20 08:09:47 +02:00
archive_url="https://github.com/syncthing/syncthing/releases/download/v"$version"/syncthing-linux-amd64-v"$version".tar.gz"
archivename="syncthing-linux-amd64-v"$version".tar.gz"
iconurl="https://raw.githubusercontent.com/syncthing/syncthing/main/assets/logo-128.png"
#Chemin sans slash de fin. Un dossier "syncthing" sera créé dans ce dossier
installdir="$HOME/bin"
# Fonctions partagées
fonct_VerifConnexionInternet () {
ping -c 1 github.com > /dev/null
if [ "$?" != "0" ]; then
echo "Erreur la connexion internet semble défaillante"
echo "Fin du script."
exit
else
echo "La connexion internet est fonctionnelle"
echo ""
fi
}
fonct_ArretSurErreur(){
if [ "$?" != "0" ]; then
echo "Erreur, le script va s'arreter."
exit
fi
}
fonct_CreationDossier () {
if [ ! -d "$1" ]; then
mkdir -p "$1"
echo "Le dossier $1 a été créé."
fi
}
fonct_PaquetInstalle () {
which $1
if [ "$?" != "0" ]; then
echo "$1 ne semble pas installé."
echo "Fin du script."
exit
else
echo "Le paquet $1 est bien installé."
fi
}
fonct_TouchePourContinuer (){
read -p "Presser une touche pour continuer ou Ctrl-C pour annuler" CONT
}
fonct_ArretSurErreur(){
if [ "$?" != "0" ]; then
echo "Le script a rencontré une erreur."
exit
fi
}
#########################################################
# Début du script
#########################################################
# Introduction
clear
cat << "EOF"
..~~+~~~..
.++++~~.~~~++++.
.++~. .~++..
~o+ ~ooo+.
~o~ +oooo
+o .+++.~o+
.o+. ..~+ooo~. +o
+ooo+++++++++oooo~ .++
+ooo~.. ~~oo. ~o~
~o+ +o+~+o~
.++~. .oooo~
.~+++~~~~~~++o+o+.
..~~~~~~..
EOF
echo ""
echo "Syncthing remplace les logiciels de synchronisation\n\
privateurs et les services de cloud par un\n\
logiciel ouvert, de confiance et décentralisé.\n\
\n
https://syncthing.net"
echo ""
echo "Ce que fait ce script :\n\
-Télécharger et installer Syncthing de façon automatique\n\
-Créer un dossier bin dans votre home\n\
-modifier l'adresse de l'interface web pour être utilisable sur un réseau local"
echo ""
fonct_TouchePourContinuer
clear
# Vérifications
fonct_VerifConnexionInternet
fonct_PaquetInstalle wget
fonct_PaquetInstalle tar
fonct_CreationDossier $installdir
fonct_ArretSurErreur
# Téléchargement syncthing
echo "Téléchargement Syncthing."
wget --quiet $archive_url
tar -xzf $archivename -C $installdir
mv $installdir/syncthing-linux-amd64-*/ $installdir/syncthing
rm $archivename
echo ""
echo "Syncthing a bien été installé."
sleep 5
# Ajout alias au .bashrc
echo "alias syncthing=\".$installdir/syncthing/syncthing\"" >> $HOME/.bashrc
which screen
if [ "$?" = "0" ]; then
echo "alias syncthinginascreen=\"screen -d -m -S syncthinginascreen $installdir/syncthing/syncthing\"" >> $HOME/.bashrc
fi
fonct_ArretSurErreur
echo "Ajout des alias au bashrc terminé."
source $HOME/.bashrc
sleep 5
#Modification de l'adresse de l'interface web
$installdir/syncthing/syncthing >> /dev/null &
sleep 60
killall syncthing
sed -i 's/127.0.0.1:8384/0.0.0.0:8384/' $HOME/.config/syncthing/config.xml
echo "Fichier de configuration modifié"
echo "Une fois lancé vous pouvez accéder à l'interface web de Syncthing depuis le réseau local."
echo ""
echo "Installation terminée."