Hi!
This is a short review of my first (well, second, to be fair) experience with Syncthing, using a Debian GNU/Linux (jessie) laptop and an Android phone.
TL;DR:
- hide dialog details in “advanced” tabs to avoid confusing users
- android app needs explanations for fields
- weird bugs in the android app: need restart to see id, share button self-duplicates…
- sharing single files would be great
The task
My task was to copy a file between two phones. I know this sounds simple, but for some reason, I had all the trouble in the world copying that file around. I tried Bluetooth (failed to find a “send to bluetooth” button), I tried email (file was just too big, 17MB), and I didn’t want to use proprietary cloud services. I was about to go with Telegram, but then I remembered how horrible their security was. Then I tried signal and it asked me to login to Google, something I generally don’t do. There was also what appeared to be a clever “Wifi file transfer” app on one phone, but not on the other (and besides, I learned later that there was a 4MB file limit there on the freemium version!). By the time I cycled through all of this, the other phone was gone, but I swore to myself I would fix that.
Installing
So. Some friend mentionned Syncthing, which I tried in the past but never actually got around really using. Installed it on the phone, no problem. Installed it on Debian, found a nitpicking issue in the documentation but otherwise went well. I was a bit confused that my terminal was showing a bunch of debug messages instead of a GUI, but then remembered that it’s a webapp on linux and switched to my web browser and saw syncthing. Yay!
Pairing
Next step was to pair the devices. That, I am not sure I would have guessed on a real first time, but anyways, I found it. I first tried to add my laptop on the phone. I went into the machines tab, clicked the +
button and up came a machine dialog. The dialog was a little confusing, but due to my previous experience, I remembered the concept of machine IDs. Some hand-holding here would probably be in order for first-time users! I noticed the small qr-code icon, being familiar with those through my work on Monkeysign, and clicked that button. That brought me to install the barcode scanner, which I did through F-Droid. When it was done installing, I was stuck in F-Droid, and I had to swipe my way out of there (probably an F-Droid usability issue more than Syncthing that).
Then I could scan the qr-code from the laptop. I found the qrcode fairly easily from the web interface, but that could be easier: on first run, maybe show that by default in the empty space? Or is that a security issue?
Next, filled in the name, fine, chose the other machine name.
Next, I get a weird field with an icon that looks like a chain, and that says by default dynamic
. No idea what that was: from the linux version, I learned this is the IP address… This should just be hidden in some “advanced” tab with explanations, IMHO. Same with compression and “initiateur” (in french, in english it was probably Introducer
, but there is zero information on what that means in the Android app, also quite confusing).
Hit save, and… hey, where is it gone? The machine is not there? Went to look on the Linux app: not there either. Hmm… Try again, fill in all the fields, nope, no way to add a machine?! That is bizarre.
Let’s try the other way: I go on the linux box to try to add the phone. First problem: the ID! I don’t have a barcode scanner on the laptop (well, there’s a webcam, but I couldn’t find a way to make the webapp use it!), so I had to type it down (gulp!). But even worse, I couldn’t find the ID on the Android app! When I went into the menu on the top left, it would say ID machine
, but there would be nothing there: just a button that does nothing (which I later learned is to copy to the clipboard).
Puzzled, I try all the other menu items, including the share button, but I don’t know if i should trust those sharing mechanisms, and besides, sharing is what i’m having problems with in the first place, so those don’t work.
So I restart the Android app. Ah! Voilà! Now I can find the machine ID. I laboriously type it down in the Linux side of things, and learned what all the fields from the Android app meant. Hit go, and now I have a machine there.
I think I had to add the machine again on the Android side after that, but I was a little confused, so I don’t quite remember. Anyways, the machines were paired, more or less. I think they connected through the local IPv6 network, which is frigging awesome (but probably a concern for my privacy, as my link-local MAC address is showing).
Sharing the file
Next step: how do I actually share a file… Look around, oh, I need to share a folder. Hmm… so I share the folder where the file is on the Android phone… Okay, done. Now the Linux app is showing me an accept button, click that, okay, a dialog to save the files somewhere… Hmm… I still get a lot of questions there! I am not sure I need to know all this stuff, I just want to share files… Just use the defaults everywhere (but I did choose “smallest first” for the files order, which seems better than “random”). It seems to me a bunch of those settings could also be hidden in an “advanced” drop down.
Now, all done, click… Close
… OOPS! I should have clicked Save
! Darn it. Now how do I get this dialog back? No idea…
So I go on the Android phone, unshare the folder with the laptop, which oddly duplicates the button - probably a bug in the UI there! It asks me to restart, alright, go ahead. Now I restart, share again, duplicate the button again, restart, and I finally get the dialog fill it, and the files start sharing!
Parting thoughts
Somehow, I would have preferred to have a button in the “Send” dialog in the file manager that would say “laptop” and forget about it. It would pop me a device pairing dialog and i would go with the little qrcode dance, once, and it would setup a folder just for me. Having to create those shares is a little annoying.
Thanks syncthing! It was wicked and a little clunky, but it works, and all free software. Good job!