commit 19db851cc323fac1cef5563e9044a8e7dfcf35cb Author: GregLebreton Date: Sat Jul 16 21:12:13 2022 +0200 push diff --git a/README.md b/README.md new file mode 100644 index 0000000..b1aa3d4 --- /dev/null +++ b/README.md @@ -0,0 +1,137 @@ + +![image](docs/syncthinglogo.png) + +Ce projet à pour but de créer un partage de fichier synchronisé entre une machine (Linux Debian) et un smartphone android, le tout gratuitement grâce au logiciel open-source +Syncthing : https://syncthing.net/ + +## INSTALLATION: + +Pré-requis: Une connaissance de Docker ainsi que l'arborescence Linux. +L'installation nécéssite un serveur(Linux / Windows / MacOS) et un client (Linux / Android / Windows / MacOS) pour illustrer la fonctionnalité de Syncthing, ici nous utiliseront un serveur Linux et un client Android. + +### SERVEUR LINUX: + +L'installation la plus simple et versatile reste encore celle via Docker compose. +- Pour installer Docker: https://gitlab.com/GregLebreton/docker.git +- Pour installer Docker compose: +```bash +sudo curl -L https://github.com/docker/compose/releases/download/1.25.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose +sudo chmod +x /usr/local/bin/docker-compose +``` + +- Clôner le repertoire suivant via la commande: + +```bash +git clone https://gitlab.com/GregLebreton/syncthing.git +``` + +```bash +cd syncthing/ +``` + +/\ Cette configuration est par défaut, vous pouvez y ajouter autant de partage que désiré dans les volumes en y indiquant les "PATH" des dossiers à partager. +Le port de la machine peux également être modifié selon les besoins. +Une fois la configuration établie, lancer la stack avec la commande: + +```bash +docker-compose up -d +``` + +- Une fois l'instance démarrée, elle est accessible à cette adresse: http://localhost:8384. + + + +- Dans l'onglet Général, renseigner le nom de l'appareil (ex: debian serveur / PC maison) + +![image](docs/syncthinggeneral.png) + +- cliquer sur configuration puis sur l'onglet interface graphique pour créer un utilisateur avec un mot de passe afin protéger l'instance serveur: + +![image](docs/syncthinglogin.png) + +- Nous allons maintenant installer un client pour initier une connection puis un partage. + +### CLIENT ANDROID: + +Le client android est disponible via le GooglePlay store: https://play.google.com/store/apps/details?id=com.nutomic.syncthingandroid&hl=fr&gl=US + +- Une fois le client installé et démarré, vous pouvez vous connecter au serveur en générant un QR code à partir du serveur: + +![image](docs/syncthingqrbouton.png) + +![image](docs/syncthingqrcode.png) + +- Pour flasher le QR code à partir du client Android, rendez-vous dans le menu ajouter un appareil, et cliquez sur l'icône + + + + +- Enfin cliquez sur l'cône du QR code pour passer en mode scanner / appareil photo et scannez le code + + + +- Une fois le QRcode flashé par le client Android, un message d'ajout d'appareil apparaît sur l'UI serveur: + +![image](docs/syncthingajoutdev.png) + +- Configurer le nouvel appareil (ici le télephone Android client) avec un nom convivial dans l'onglet général: + +![image](docs/syncthingtelconfig.png) + +- Attendre la synchronistaion des appareils: + + + + + +- On peux désormais créer un partage sur le client Android en indiquant le chemin du dossier de partage sur l'appareil Android et en cochant l'appareil avec lequel on veut partager ce dossier ( ici GREGSTATION, alias le serveur Linux): + + + +Une fois celui-ci enregistré, une notification d'ajout de partage va apparaître sur l'interface web du serveur, cliquez sur ajouter: + +![image](docs/syncthingnewpartage.png) + +- Configurer le nom du partage ainsi que le chemin vers le dossier partagé +/\ Attention, le / les dossier(s) partagé(s) ont dûs être configurés dans le docker-compose.yml +au niveau des volumes: +```bash + - /data1:/data1 +``` +Dans l'exemple ci-dessus, le répertoire /exemple/data1 sur la machine hôte correspond au dossier /data1 dans le conteneur Docker. +- Pour le chemin racine du partage, il faut choisir le chemin dans le conteneur soit /data1. +(Dans l'image /Synchro) + +![image](docs/syncthingconfigpartageserveur.png) + +- Dans l'onglet Partages, on peut désormais cocher le ou les appareils avec lesquels on va partager le dossier du serveur. + +![image](docs/syncthingajoutdevtel.png) + +Les dossiers se synchronisent: + +![image](docs/syncthingserveursynch.png) + +Si tout s'est bien passé, vous devriez avoir les mêmes fichiers dans les dossiers choisis lors du partage que se soit sur votre serveur ou sur votre téléphone Android. + +### CLIENT WINDOWS: + +Le client Windows est disponible à cette adresse: https://syncthing.net/downloads/ +- Le principe reste le même qu'un client Android: + * On ajoute le serveur comme appareil + * On valide l'ajout du client Windows auprès du serveur + * On attends la connection des deux appareils + * On ajoute un dossier de partage du client Windows vers le serveur + * On valide le partage du client Windows sur le serveur + * On attends la synchronisation + +### PRÉCISIONS: + +1) Le partage peux être initié du client ou du serveur une fois les deux appareils connectés, +la validation du partage s'éffectue du côté du non initiateur. +2) Le dossier .stfolder est NÉCESSAIRE au bon fonctionnement de Syncthing, n'éssayez pas de l'éffacer. +3) Il est possible de choisir les directions de synchronisation (envoyer et reçevoir, envoyer seulement et reçevoir seulement) Cela permet de protéger contre la perte de données en cas de mauvaise manipulation. +4) Les différents partages peuvent être chiffrés par des mots de passe pour plus de sécurité, n'hésitez pas à l'utiliser. + +#### Pour plus d'informations, consulter la documentation officielle: + +https://docs.syncthing.net/ \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..5b50185 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,24 @@ +--- +version: "2.1" +services: + syncthing2: + image: ghcr.io/linuxserver/syncthing + container_name: syncthing + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/Paris + volumes: +# Mapping des volumes (le ./ permet la persistence des données sur l'hôte en cas de crash de conteneur) + - ./config:/config +# Mapping des volumes pour les dossier partagés (modifié la partie gauche hôte en fonction des besoins) + - /path/to/data1:/data1 + - /path/to/data2:/data2 + ports: +# Mapping des ports hôte / conteneur + - 8384:8384 +# Ports nécessaires aux client pour se connecter au serveur (à ouvrir si firewall) + - 22000:22000/tcp + - 22000:22000/udp + - 21027:21027/udp + restart: unless-stopped \ No newline at end of file diff --git a/docs/syncthingajoutdev.png b/docs/syncthingajoutdev.png new file mode 100644 index 0000000..632628a Binary files /dev/null and b/docs/syncthingajoutdev.png differ diff --git a/docs/syncthingajoutdevtel.jpg b/docs/syncthingajoutdevtel.jpg new file mode 100644 index 0000000..7234cab Binary files /dev/null and b/docs/syncthingajoutdevtel.jpg differ diff --git a/docs/syncthingajoutdevtel.png b/docs/syncthingajoutdevtel.png new file mode 100644 index 0000000..fdf5de9 Binary files /dev/null and b/docs/syncthingajoutdevtel.png differ diff --git a/docs/syncthingajoutdevtel2.jpg b/docs/syncthingajoutdevtel2.jpg new file mode 100644 index 0000000..ee073b4 Binary files /dev/null and b/docs/syncthingajoutdevtel2.jpg differ diff --git a/docs/syncthingboard.png b/docs/syncthingboard.png new file mode 100644 index 0000000..0060787 Binary files /dev/null and b/docs/syncthingboard.png differ diff --git a/docs/syncthingconfigpartageserveur.png b/docs/syncthingconfigpartageserveur.png new file mode 100644 index 0000000..e8752ed Binary files /dev/null and b/docs/syncthingconfigpartageserveur.png differ diff --git a/docs/syncthinggeneral.png b/docs/syncthinggeneral.png new file mode 100644 index 0000000..48ce5b2 Binary files /dev/null and b/docs/syncthinggeneral.png differ diff --git a/docs/syncthinglogin.png b/docs/syncthinglogin.png new file mode 100644 index 0000000..930f1cf Binary files /dev/null and b/docs/syncthinglogin.png differ diff --git a/docs/syncthinglogo.png b/docs/syncthinglogo.png new file mode 100644 index 0000000..3ee4b14 Binary files /dev/null and b/docs/syncthinglogo.png differ diff --git a/docs/syncthingnewpartage.png b/docs/syncthingnewpartage.png new file mode 100644 index 0000000..baaf4e5 Binary files /dev/null and b/docs/syncthingnewpartage.png differ diff --git a/docs/syncthingpartage.png b/docs/syncthingpartage.png new file mode 100644 index 0000000..1689995 Binary files /dev/null and b/docs/syncthingpartage.png differ diff --git a/docs/syncthingpartagetel.jpg b/docs/syncthingpartagetel.jpg new file mode 100644 index 0000000..c77c197 Binary files /dev/null and b/docs/syncthingpartagetel.jpg differ diff --git a/docs/syncthingqrbouton.png b/docs/syncthingqrbouton.png new file mode 100644 index 0000000..45ae5c5 Binary files /dev/null and b/docs/syncthingqrbouton.png differ diff --git a/docs/syncthingqrcode.png b/docs/syncthingqrcode.png new file mode 100644 index 0000000..5adaa01 Binary files /dev/null and b/docs/syncthingqrcode.png differ diff --git a/docs/syncthingserveursynch.png b/docs/syncthingserveursynch.png new file mode 100644 index 0000000..476f9f7 Binary files /dev/null and b/docs/syncthingserveursynch.png differ diff --git a/docs/syncthingtelconfig.png b/docs/syncthingtelconfig.png new file mode 100644 index 0000000..bc64d07 Binary files /dev/null and b/docs/syncthingtelconfig.png differ diff --git a/docs/syncthingtelsynch1.jpg b/docs/syncthingtelsynch1.jpg new file mode 100644 index 0000000..d16b33c Binary files /dev/null and b/docs/syncthingtelsynch1.jpg differ diff --git a/docs/syncthingtelsynch2.jpg b/docs/syncthingtelsynch2.jpg new file mode 100644 index 0000000..01ee066 Binary files /dev/null and b/docs/syncthingtelsynch2.jpg differ