====== Syncthing ====== À la recherche d'une alternative à dropbox pour partager mes dossiers entre mes divers appareils, je teste Syncthing. Notes prises au fur et à mesure, pour repartager si c'est utile. Syncthing existe sur tous les OS, un bon point. Il est dans les dépôts d'Archlinux et Debian. Installer le paquet ''syncthing'' suffit pour tester, il y a un "gui" via une adresse web. Il y a aussi des versions graphiques, pas testé encore. À noter qu'il existe en français, entre autre, pour l'interface. L'installer sur un serveur permet de synchroniser entre les appareils sans avoir besoin de les allumer en même temps. pour Archlinux : yaourt -S syncthing Pour Debian, ajouter le dépôt [[http://apt.syncthing.net/|comme indiqué ici]] (faut ptet installer curl, aussi). Une fois le paquet installé, il faut lancer syncthing pour qu'il créé le dossier. syncthing Une page web s'ouvre à l'adresse [[http://localhost:8384/]] ou [[127.0.0.1:8384]] : c'est l'interface pour gérer le truc. On peut aussi modifier la configuration en modifiant le fichier ''/home/user/.config/syncthing/config.xml'' Il faut sans doute lancer syncthing automatiquement au démarrage ? En ajoutant un répertoire (où qu'il soit sur l'ordi), on va indiquer à Syncthing qu'on pourra potentiellement le partager. Il faut aussi sélectionner les machines amies (''Ajouter un périphérique''). Il faut pour ça l'ID des machines qui vont se connecter ensemble. En haut, dans la configuration "montrer l'ID". C'est pas court à partager... Lorsque l'ID de la machine A est ajouté sur la machine B, la machine A reçoit en retour automatiquement une demande pour synchroniser aussi, puis l'accord pour partager certains dossiers. ===== Synchronisation via un serveur ===== Avec l'option de base, pour synchroniser ses dossiers il faut avoir tous ses appareils allumés. On peut aussi se simplifier tout ça en installant Syncthing sur un serveur (toujours allumé), nos divers appareils se synchronisant dessus. Installer Syncthing sur le serveur (installer en root, mais lancer la première session en user !). Modifier le fichier ''/home/user/.config/syncthing/config.xml'' : à la place
127.0.0.1:8384
Mettre :
0.0.0.0:8080
''0.0.0.0'' indique d'utiliser l'adresse ip. Pourquoi changer le port, je ne sais pas trop... On peut sans doute mettre ce qu'on veut ? Taper l'adresse du serveur suivi de 8080 (http://153.81.158.610:8080/ par exemple). Aller dans la configuration, mettre un nom pour ''Utilisateur autorisé GUI'' et un mot de passe à ''Mot de passe d'authentification GUI''. En cas d'oubli, il suffira de rééditer ''/home/user/.config/syncthing/config.xml'' et d'enlever les deux lignes sous ''
0.0.0.0:8080
'', puis de remettre un mot de passe. Ajouter les ID des divers appareils. Sur chaque appareil, ajouter uniquement l'ID du serveur. Synchroniser les dossiers nécessaire. ==== Derrière un proxy ==== Danx le cas de Xen avec une VM qui fait parefeu/proxy et une autre où est installé Syncthing, il faut mettre sur la VM proxy (avec l'ip ''192.168.20.12'' adaptée pour correspondre à la VM de syncthing): ProxyRequests off ProxyPreserveHost on ProxyPass /syncthing/ http://192.168.20.12:8384/ ProxyPassReverse http://192.168.20.12:8384/ Require all granted Et sur la VM de syncthing : ProxyRequests off ProxyPreserveHost on ProxyPass /syncthing/ http://192.168.20.12:8384/ ProxyPassReverse http://192.168.20.12:8384/ Require all granted ===== Allumer au démarrage ===== Avec SystemD, taper les commandes suivantes devrait suffire ? systemctl enable syncthing@user.service systemctl start syncthing@user.service Remplacer "user" par le nom de l'utilisateur qui lance le service ! Sur les anciens systèmes où le démarrage se fait toujours via init.d, copier ce fichier (en adaptant au début les variables) dans ''/etc/init.d/syncthing'' (source : [[https://forum.syncthing.net/t/keeping-syncthing-running-systemd-regular-etc-init-d/402]] #!/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="nom_de_l'utilisateur" DAEMON=/usr/bin/syncthing startd() { for stuser in $syncthing_USERS; do HOMEDIR=$(getent passwd $stuser | awk -F: '{print $6}') if [ -f $config ]; then echo "Starting syncthiing 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 le script executable : chmod a+x /etc/init.d/syncthing Pour lancer le service : /etc/init.d/syncthing start ===== Application android ===== Source ici : https://github.com/syncthing/syncthing-android ==== Éviter que ça tourne tout le temps (et n'importe où) ==== En fait, y'a de quoi gérer, mais c'est pas évident. Dans les paramètres, conditions d'exécution : tout décocher, sauf ''Exécuter en wifi'' (paramétrer aussi les réseaux où la synchro est acceptable) et ''Sauvegarde batterie selon les réglages''. Puis retourner dans le menu et faire ''Quitter''. Tuer l'appli ou l'enlever de la liste des appli ne suffit pas, elle tournera en arrière plan et se relancera après un kill. Il faut bien cliquer sur ''Quitter'' pour qu'elle cesse de tourner. Et voilà. Plus qu'à l'activer quand c'est le bon moment !