Changes

Jump to navigation Jump to search
5,962 bytes added ,  18:11, 1 September 2014
Created page with "(in french, copy/past from my pro wiki, i'll translate it later) ==Installation de Syncthing== ===Préparation=== Création d'un utilisateur spécifique pour l'application ..."
(in french, copy/past from my pro wiki, i'll translate it later)

==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'''
5

edits

Navigation menu