Syncthing/fr
(in french, copy/past from my pro wiki, i'll translate it later)
For the impatient, please see http://forums.contribs.org/index.php/topic,51081.0.html
About
"Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet."
Installation de Syncthing
Préparation
Création d'un utilisateur spécifique pour l'application Syncthing
[root@server ~]#useradd syncthing
Créations du dossier pour les log de l'application
[root@server ~]#mkdir /home/syncthing/log
Création du dossier pour l’exécutable
[root@server ~]#mkdir /home/syncthing/bin
Téléchargement de Syncthing Aller sur la page https://github.com/syncthing/syncthing/releases/latest et copier/coller le lien vers l'archive contenant le programme compilé pour votre architecture (ici, linux 64 bits)
Puis lancer le téléchargement sur le serveur:
[root@server ~]# wget https://github.com/syncthing/syncthing/releases/download/v0.9.10/syncthing-linux-amd64-v0.9.10.tar.gz
Installation
On extrait l'archive
[root@server ~]# tar -zxvf syncthing-linux-amd64-v0.9.10.tar.gz
On copie dans le dossier prévu que l'on a créé
[root@server ~]# cp syncthing-linux-amd64-v0.9.10/syncthing /home/syncthing/bin/
On change les droits pour que l'application puisse s’exécuter correctement
[root@server ~]#chown syncthing:syncthing -Rf /home/syncthing/*
Configuration de Syncthing en tant que service
Script de démarrage dans SME
On crée le fichier de script
[root@server ~]#nano /etc/rc.d/init.d/syncthing
Copier/coller le contenu ci dessous. Les lignes à noter concernent:
- l'emplacement de l’exécutable SCRIPT=/home/syncthing/bin/syncthing
- l'utilisateur qui lance le service RUNAS=syncthing
- le nom du service NAME=syncthing
- l'emplacement du fichier log LOGFILE=/home/syncthing/log/$NAME.log
#!/bin/sh ### BEGIN INIT INFO # Provides: Syncthing # Required-Start: $local_fs $network $named $time $syslog # Required-Stop: $local_fs $network $named $time $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: Syncthing to sync folders ### END INIT INFO SCRIPT=/home/syncthing/bin/syncthing RUNAS=syncthing NAME=syncthing PIDFILE=/var/run/$NAME.pid LOGFILE=/home/syncthing/log/$NAME.log start() { if [ -f $PIDFILE ] && kill -0 $(cat $PIDFILE); then echo 'Service already running' >&2 return 1 fi echo 'Starting service…' >&2 local CMD="$SCRIPT &> \"$LOGFILE\" & echo \$!" su -c "$CMD" $RUNAS > "$PIDFILE" echo 'Service started' >&2 } stop() { if [ ! -f "$PIDFILE" ] || ! kill -0 $(cat "$PIDFILE"); then echo 'Service not running' >&2 return 1 fi echo 'Stopping service…' >&2 kill -15 $(cat "$PIDFILE") && rm -f "$PIDFILE" echo 'Service stopped' >&2 } uninstall() { echo -n "Are you really sure you want to uninstall this service? That cannot be undone. [yes|No] " local SURE read SURE if [ "$SURE" = "yes" ]; then stop rm -f "$PIDFILE" echo "Notice: log file is not be removed: '$LOGFILE'" >&2 update-rc.d -f <NAME> remove rm -fv "$0" fi } status() { printf "%-50s" "Checking $NAME..." if [ -f $PIDFILE ]; then PID=$(cat $PIDFILE) if [ -z "$(ps axf | grep ${PID} | grep -v grep)" ]; then printf "%s\n" "The process appears to be dead but pidfile still exists" else echo "Running, the PID is $PID" fi else printf "%s\n" "Service not running" fi } case "$1" in start) start ;; stop) stop ;; status) status ;; uninstall) uninstall ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|status|restart|uninstall}" esac
Création du service
On rend le script créé exécutable
[root@server ~]#chmod u+x /etc/rc.d/init.d/syncthing
On ajoute le service
[root@server ~]#chkconfig syncthing --add
On crée un lien symbolique pour l'init 7 de SME
[root@server ~]#ln -f -s /etc/rc.d/init.d/e-smith-service /etc/rc7.d/S99syncthing
On active le service Syncthing dans la configuration de la SME
[root@server ~]#db configuration set syncthing service status enabled
Configuration du service Syncthing
Pour permettre l’accès seulement depuis le réseau local
[root@server ~]#db configuration setprop syncthing access private
Ou si vous voulez permettre l'acces le réseau local et publique
[root@server ~]#db configuration setprop syncthing access public
Syncthing, pour fonctionner a besoin de plusieurs ports ouverts
[root@server ~]#db configuration setprop syncthing TCPPort 8080 [root@server ~]#db configuration setprop syncthing TCPPorts 8080,22000 [root@server ~]#db configuration setprop syncthing UDPPort 21025
On applique les changements
[root@server ~]#signal-event remoteaccess-update
Enfin on lance le service
[root@server ~]#service syncthing start
Configuration de Syncthing
Les fichiers de configuration de Syncthing se trouvent dans /home/syncthing/.config/syncthing/
Nous allons modifier le fichier config.xml
[root@server ~]#nano /home/syncthing/.config/syncthing/config.xml
Repérer ces lignes:
<gui enabled="true" tls="false"> <address>127.0.0.1:8080</address>
D'origine, on ne peut se connecter à l'interface web de gestion de Syncthing que depuis le serveur hôte et de façon non sécurisé. Changez ces lignes afin de permettre l’accès depuis un ordinateur du réseau autorisé dans la configuration du service (voir plus haut) et en forçant l'encodage des données.
<gui enabled="true" tls="true"> <address>0.0.0.0:8080</address>
Enregistrer et relancer le service
[root@server ~]#service syncthing restart
Configuration par l'interface Web
Aller sur l'adresse pour accéder à l'interface de gestion avec votre navigateur: https://ip_du_serveur:8080
Dans le menu Editer > Configuration, vous pouvez définir un utilisateur identifié par mot de passe pour accéder à l'interface de gestion pour plus de sécurité.
Vous pouvez maintenant ajouter des répertoires et des nœuds, les dossiers seront ajoutés dans /home/syncthing