Comment transférer facilement des fichiers entre les machines et les utilisateurs d’un même LAN?
Introduction
Je cherche depuis plusieurs semaines un outil simple à utiliser permettant de transférer des fichiers entre deux machines et/ou utilisateurs. Pour simplifier la recherche, il fallait encore que l’outil soit open source, auto-hébergeable (sans docker et sur Raspeberry PI), sécurisé et disponible pour Linux et Android, sans serveur STUN.
Détail des points
- Open source: c’est une question de pérennité. On a déjà vu pléthore de logiciels payants abandonnés par leurs édtieurs.
- Auto-hébergeable: ici c’est la règle du “si ça passe par internet, ça risque d’être rendu publique” qui prévaut.
- Sécurisé: ça reste une bonne pratique de sécuriser les échanges, même en réseau local.
- Linux / Android: ce sont les deux plateformes utilisées chez le Gobo.
- Pas de serveur STUN: pourquoi ajouter une dépendance externe pour des échanges en réseau local?
Candidats
Ils sont très nombreux mais aucun ne coche toutes les cases. En désespoir de cause, j’ai commençé à écrire mes propres spécifications afin de développer mon petit outil. Et au hasard d’une recherche sur les sockets et le broadcasting en Flutter / Dart, je suis tombé sur un dépôt GitHub: LocalSend!
LocalSend: l’outil idéal!
C’est simple: LocalSend coche toutes les cases! En bonus, les échanges sont réalisés directement entre les clients, sans serveur central.
Instalation et utilisation sous Linux
L’installation sous Debian passe se fait via un fichier .deb. Pour cela, un coup de sudo dpkg -i localsend.deb
et le tour est joué. Ou presque car sur ma distribution il manquait un package. Je suis passé par apt pour corriger le problème: sudo apt --fix-broken install
. Cette fois LocalSend est installé, il suffit de lancer localsend_app
depuis un terminal (ou depuis le menu KDE) pour voir apparaître cet écran:
C’est d’ailleurs l’écran par défaut lors de chaque lancement. A noter que le chiffre après le dièse correspond au dernier nombre de l’adresse IP.
Configuration
Le panneau de configuration est complet mais pas complexe. Je présente trois screenshots mais en réalité il n’y a qu’un seul écran.
Dans ce premier lot, je suis passé en thème Dark, couleurs OLED et avec animations.
Ici, j’ai choisi le dossier de réception par défaut et j’ai désactivé la gestion de l’historique.
Dans ce troisème volet, j’ai configuré mon nom (celui par défaut est, euh, disons, original) et j’ai activé le chiffrement. J’ai laissé le port par défaut, parce qu’il n’entre pas en conflit avec d’autres applications. On peut bien sûr bloquer ce port en dehors de sa zone LAN sur son firewall.
Finalement l’écran de configuration se termine avec des infos sur l’application.
Envoi de fichier et texte.
On peut choisir entre quatres types d’envoi:
- un fichier à la fois
- le contenu d’un dossier
- un message textuel (mais ce n’est pas une messagerie instantanée)
- le contenu du presse-papiers (je suis dubitatif sur ce dernier)
Types de destinataires
On peut choisir entre un destinataire unique, plusieurs destinataires ou un lien de partage. L’option “share via link” est intéressante car elle permet à un utilisateur de télécharger le fichier sans devoir installer LocalSend.
Réception de fichiers
Le destinataire doit accepter le transfert. C’est ici que le nom qu’on choisit prend son importance. A noter que LocalSend présente l’IP (uniquement le dernier chiffre) et le type d’appareil de l’émetteur.
Ici on a confirmation des fichiers reçus et du dossier de dépôt.
Instalation et utilisation sous Android
Installation
Ici on a le choix entre trois solutions: le playstore, F-Droid et le fichier APK. J’ai opté pour F-Droid. L’installation ne demande rien de particulier. La bonne nouvelle est que l’application est identique à la version Linux: mêmes écrans, même configuration, même ergonomie. C’est vraiment agréable. A noter qu’on peut envoyer un fichier APK directement, ce qui peut s’avérer pratique (même si cela reste une utilisation marginale).
Conclusion
LocalSend est le type même du logiciel open source qui ne paye pas de mine mais qui propose des fonctionnalitées utiles, bien pensées et bien réalisées. C’est vraiment un logiciel à utiliser et à faire connaître.