Comment installer Syncthing sur un VPS - Guide étape par étape
Installer un VPS
Une fois votre compte activé, votre VPS acheté, vous allez recevoir un mot de passe Root et une adresse ip.
ssh root@46.38.250.99
Optionnel :
Sur cloudflare ça donne ça :

ssh root@sync.andy-cinquin.fr

Update et upgrade les dépendances
apt update && apt upgrade
apt install sudo ufw tmux git vim fish -y
- sudo pour la configuration future de notre utilisateur
- ufw pour le pare-feu
- tmux pour un petit outil qui permet d'avoir plusieurs fenetre dans le même terminal & récupérer sa session
- git pour la gestion de nos projets et l'installation d'autres outils
- vim pour un éditeur de texte (autre que nano, j'aime pas nano)
- fish pour un terminal avec de l'autocomplétion et des couleurs
Si votre langue n'est pas la bonne (optionnel)
On execute les commandes suivantes :
-
D'abord, générons la locale en_US.UTF-8 :
locale-gen en_US.UTF-8 -
Maintenant, éditons le fichier de configuration des locales :
nano /etc/default/localeAssurez-vous qu'il ne contient que ces lignes :
LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8Sauvegardez et quittez le fichier.
-
Régénérons toutes les locales :
locale-gen --purge -
Mettons à jour les locales :
update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 -
Pour appliquer ces changements, redémarrez le système :
reboot
Installation d'un nouvel utilisateur et configuration de base
1. Création d'un nouvel utilisateur
- Créer un nouvel utilisateur avec un répertoire personnel et le shell fish
useradd andy -m -s /bin/fish
- Ajouter l'utilisateur au groupe sudo
usermod -aG sudo andy
- Définir un mot de passe pour le nouvel utilisateur
passwd andy
exit(plusieurs fois)
2. Configuration de la clé SSH
Générer une clé SSH (si vous n'en avez pas)
ssh-keygen
Ajouter la clé SSH au serveur
su - andy
- Créer le répertoire .ssh
cd /home/andy/
mkdir .ssh
- Éditer le fichier authorized_keys
vim /home/andy/.ssh/authorized_keys
:x! )~/.ssh/id_rsa.pub sur votre machine locale) dans ce fichier.(le
~) correspond au répertoire utilisateur de votre machine sur windows ça sera donc surement C://users/andy/.ssh quelque chose dans le genreDe toute façon si dans votre terminal de votre propre machine vous taper "
cd ~/.ssh/" , vous trouverez l'endroit que vous recherchez (le fichier est cacher il faut potentiellement cocher la case qui permet de le voir sur windows / linux )Configurer les permissions
cd /home/andy
chown andy:andy .ssh/ -R
chmod 700 .ssh/
chmod 600 .ssh/authorized_keys
3. Configuration de SSH
sudo vim /etc/ssh/sshd_config
PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin no
AuthorizedKeysFile .ssh/authorized_keys
4. Configuration du pare-feu UFW
sudo ufw allow 53
sudo ufw allow 443
sudo ufw allow 22
sudo ufw enable
5. Redémarrage du service SSH
sudo systemctl restart sshd
Vérification
- Ouvrez une nouvelle session SSH et vérifiez que vous pouvez vous connecter avec votre clé.
- Vérifiez que vous ne pouvez pas vous connecter avec un mot de passe.
- Vérifiez que vous ne pouvez pas vous connecter en tant que root.
ssh andy@sync.andy-cinquin.fr
-> ça me connecte directement avec le bon utilisateur et directement sur ma machine
Notes de sécurité
- Gardez votre clé privée en sécurité sur votre machine locale.
- Mettez régulièrement à jour votre système et vos paquets.
- Surveillez les tentatives de connexion infructueuses dans les logs.
Etape 2. Installer syncthings et le configurer
1. Installation de Syncthing
ssh andy@sync.andy-cinquin.fr
sudo apt update
sudo apt install syncthing
2. Configuration du service Syncthing
sudo vim /etc/systemd/system/syncthing@.service
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target
[Service]
User=%i
ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0
Restart=on-failure
RestartSec=5
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
[Install]
WantedBy=multi-user.target
3. Activation et démarrage du service
sudo systemctl enable syncthing@andy.service
sudo systemctl start syncthing@andy.service
sudo systemctl status syncthing@andy.service
4. Configuration du pare-feu
sudo ufw allow from 127.0.0.1 to any port 8384
5. Accès à l'interface web via un tunnel SSH
ssh -L 8385:localhost:8384 andy@sync.andy-cinquin.fr
6. Accès à l'interface web
http://localhost:8385
7. Configuration initiale de Syncthing
- Définissez un mot de passe pour l'interface web dans "Settings" > "GUI".
- Configurez les dossiers à synchroniser en cliquant sur "Add Folder".
- Pour connecter d'autres appareils, utilisez "Add Remote Device" et échangez les ID d'appareil.
8. Fermeture du tunnel SSH
pkill -f "ssh -L 8385:localhost:8384"
Notes importantes
-
Assurez-vous que Syncthing n'écoute que sur localhost pour une meilleure sécurité. Vérifiez le fichier de configuration (
~/.config/syncthing/config.xml) et assurez-vous que la section<gui>contient<address>127.0.0.1:8384</address>. -
Pour une utilisation régulière, vous pouvez créer un alias dans votre fichier
.bashrcou.zshrclocal :alias syncthing-remote='ssh -L 8385:localhost:8384 andy@sync.andy-cinquin.fr'Ainsi, vous pourrez simplement taper
syncthing-remotepour ouvrir le tunnel SSH.
Les conseils alternatifs
- Utilisation des introducteurs :
- Un introducteur est un appareil qui aide à établir une connexion entre deux autres appareils qui ne peuvent pas se connecter directement.
- Utilisez des introducteurs lorsque :
- Vos appareils sont derrière des NAT ou des pare-feu restrictifs.
- Vous avez un appareil toujours en ligne (comme un serveur) qui peut faciliter les connexions.
- Configurez votre serveur VPS comme introducteur pour vos autres appareils.
- N'utilisez pas plus d'introducteurs que nécessaire pour éviter la complexité.
- Gestion des dossiers :
- Utilisez des chemins absolus pour les dossiers partagés.
- Évitez de synchroniser des dossiers système ou des répertoires d'application.
- Utilisez des noms de dossiers descriptifs et cohérents sur tous les appareils.
- Considérez l'utilisation de dossiers en lecture seule pour les appareils moins sécurisés.
- Versions de fichiers :
- Activez le versionnement des fichiers pour pouvoir récupérer des versions antérieures en cas de besoin.
- Choisissez entre le versionnement simple, le versionnement par étiquette de temps, ou le versionnement externe selon vos besoins.
- Ignorer les fichiers :
- Utilisez des patterns d'ignore pour exclure les fichiers temporaires, les caches, et les fichiers système.
- Créez un fichier .stignore dans chaque dossier synchronisé pour une gestion fine des exclusions.
- Compression :
- Activez la compression pour les connexions lentes ou les gros fichiers.
- Désactivez-la si tous vos appareils sont sur un réseau local rapide.
- Limites de bande passante :
- Configurez des limites de bande passante pour éviter de saturer votre connexion.
- Ajustez ces limites en fonction de vos besoins et de votre connexion Internet.
- Scan des dossiers :
- Ajustez l'intervalle de scan en fonction de la fréquence des changements dans vos dossiers.
- Utilisez la fonction de notification du système de fichiers (fsnotify) quand c'est possible.
- Sécurité :
- Utilisez HTTPS pour l'interface web de Syncthing.
- Activez l'authentification pour l'interface web.
- Utilisez des mots de passe forts pour tous les appareils.
- Limitez l'accès à l'interface web à localhost et utilisez un tunnel SSH pour y accéder à distance.
- Configuration des appareils :
- Donnez des noms descriptifs à vos appareils pour les identifier facilement.
- Utilisez des étiquettes pour grouper les appareils par fonction ou localisation.
- Relais et découverte :
- Utilisez les relais globaux uniquement si nécessaire pour la connexion.
- Configurez la découverte locale si tous vos appareils sont sur le même réseau.
- Notifications :
- Configurez des notifications pour être alerté des changements importants ou des problèmes de synchronisation.
- Sauvegarde de la configuration :
- Sauvegardez régulièrement votre configuration Syncthing (dossier .config/syncthing).
- Mise à jour :
- Gardez Syncthing à jour sur tous vos appareils pour bénéficier des dernières fonctionnalités et correctifs de sécurité.
- Monitoring :
- Utilisez l'onglet "Out of Sync Items" pour identifier et résoudre les problèmes de synchronisation.
- Vérifiez régulièrement les logs pour détecter d'éventuels problèmes.
🚀 Merci d'avoir lu jusqu'ici !
Si cet article vous a plu, partagez-le autour de vous.
💡 Une idée en tête ? Discutons-en !☕

