Syncthing - Synchronisation Cloud
Sommaire
Présentation
Syncthing est un projet libre qui permet de faire de la synchronisation de fichiers multidirectionnelle.
Site Officiel : http://syncthing.net/ Télécharger les fichiers binaires : https://github.com/syncthing/syncthing/releases/tag/v0.10.21
Installation sur debian
Création de l'utilisateur et des répertoires
Ajouter un utilisateur spécifique syncthing
useradd syncthing
Créer le répertoire home de cet utilisateur et donnez lui les droits dessus
mkdir /home/syncthing/
chown -R syncthing:syncthing /home/syncthing
Créer le répertoire qui contiendra la binaire syncthing
mkdir /var/lib/syncthing/
chown -R syncthing:syncthing /var/lib/syncthing/
Téléchargement et Installation
Téléchargez l'archive qui contient la binaire Syncthing, l'extraire et donner les droits
cd /home/syncthing/
mkdir install
wget https://github.com/syncthing/syncthing/releases/download/v0.10.21/syncthing-linux-amd64-v0.10.21.tar.gz
tar -xvzf syncthing-linux-amd64-v0.10.21.tar.gz -C /home/syncthing/install/
cp -R /home/syncthing/install/syncthing-linux-amd64-v0.10.21/* /var/lib/syncthing/
chown -R syncthing:syncthing /var/lib/syncthing/
Lancer Syncthing une première fois et attendez que le process termine son initialisation
su syncthing
cd /var/lib/syncthing
./syncthing
CTRL+C pour terminer le process
exit ## revenir en console root
Configuration du serveur
Éditer le fichier de config créée dans le home de l'utilisateur syncthing
vim /home/syncthing/.config/syncthing/config.xml
Changez les lignes
<gui enabled="true" tls="false">
<address>127.0.0.1:8080</address>
Par
<gui enabled="true" tls="true">
<address>0.0.0.0:8899</address> <<< ou le port que vous souhaitez
Relancez syncthing et vous avez maintenant accès a l'interface web via <ip_du_serveur>:port
su syncthing
cd /var/lib/syncthing
./syncthing
CTRL+C pour terminer le process
exit ## revenir en console root
Script init.d pour Syncthing
Voici le script init.d a créer afin de démarrer automatiquement syncthing
vim /etc/init.d/syncthing
Contenu du fichier /etc/init.d/syncthing
#!/bin/sh
### BEGIN INIT INFO
# Provides: syncthing
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Multi-user daemonized version of syncthing.
# Description: Starts the syncthing daemon for all registered users.
### END INIT INFO
# Replace with users you want to run syncthing clients for
syncthing_USERS=syncthing
DAEMON=/var/lib/syncthing/syncthing
startd() {
for stuser in $syncthing_USERS; do
HOMEDIR=$(getent passwd $stuser | awk -F: '{print $6}')
if [ -f $config ]; then
echo "Starting syncthing for $stuser"
start-stop-daemon -b -o -c $stuser -S -u $stuser -x $DAEMON
else
echo "Couldn't start syncthing for $stuser (no $config found)"
fi
done
}
stopd() {
for stuser in $syncthing_USERS; do
dbpid=$(pgrep -fu $stuser $DAEMON)
if [ ! -z "$dbpid" ]; then
echo "Stopping syncthing for $stuser"
start-stop-daemon -o -c $stuser -K -u $stuser -x $DAEMON
fi
done
}
status() {
for stuser in $syncthing_USERS; do
dbpid=$(pgrep -fu $stuser $DAEMON)
if [ -z "$dbpid" ]; then
echo "syncthing for USER $stuser: not running."
else
echo "syncthing for USER $stuser: running (pid $dbpid)"
fi
done
}
case "$1" in
start) startd
;;
stop) stopd
;;
restart|reload|force-reload) stopd && startd
;;
status) status
;;
*) echo "Usage: /etc/init.d/syncthing {start|stop|reload|force-reload|restart|status}"
exit 1
;;
esac
exit 0
Rendre ce script executable
chmod a+x /etc/init.d/syncthing
Inscription du script dans la base de démarrage
killall syncthing
update-rc.d syncthing defaults
service syncthing start