Syncthing - Synchronisation Cloud

De Wiki des Responsables Techniques du 85
(Redirigé depuis Serveurs:Syncthing)
Aller à : navigation, rechercher

Logo-text-256.png

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