Hey,
I was wondering what folks use to quickly send a file or a link between your PC and android phone in a lightweight and self hosted way.
Currently I use syncthing to copy files around, but I’m looking for something more immediate, and quick than doesn’t involve searching for folders in a file manager.
Example use case: Send a file from PC to phone. Notification pops up on phone, tap it to access.
(PC runs OpenBSD)
What lightweight software do you guys use?
Stuff I tried so far:
- syncthing
- xmpp
- tox
- scp and termux.
- magic wormhole
- telegram saved messages
Syncthing is fast. I have an IPv6 setup too which seems to help.
I have my downloads directory on my desktop linked to a downloads directory on my Android; you can’t link to the real Android downloads directory anymore so I use another.
When the file is removed from the desktop downloads directory it disappears from mobile.
I tried using Bluetooth between them but it’s more fiddly than Syncthing with my config. Switch Bluetooth on on desktop, connect to desktop, send file, disconnect, move file. Whereas Syncthing is always on.
However, before I started using Obsidian notes I used to transfer URLs using Signal’s Note-to-self thing. Signal on both desktop and mobile.
Obviously, I sync between mobile and desktop Obsidian using Syncthing.
Here are a bunch of local services I’ve used at one point or another from phone to PC or PC to PC. Not sure if any links are out of date.
KDE Connect
Wormhole (Closed Source)
- Site: https://wormhole.app/
LocalSend
- Site: https://localsend.org/
- Source: https://github.com/localsend/localsend
SnapDrop
- Site: https://snapdrop.net/
- Source: https://github.com/RobinLinus/snapdrop
ShareDrop
- Site: https://www.sharedrop.io/
- Source: https://github.com/szimek/sharedrop
FilePizza
- Site: https://file.pizza/
- Source: https://github.com/kern/filepizza
Original Wormhole
- Site: https://webwormhole.io/
- Source: https://github.com/saljam/webwormhole
PeerTransfer
JustBeamIt
- Site: https://justbeamit.com
- Source: https://github.com/justbeamit/beam
Send Visee
- Website: https://send.vis.ee/
- Source: https://github.com/timvisee/send
- List of instances at: https://github.com/timvisee/send-instances
+1 Love LocalSend!
PairDrop is a fork of SnapDrop, which at one point had more features and active development. Don’t know, how it is nowadays though.
+1 for LocalSend. Well worth checking out.
Another +1 for it here. Use it multiple times a day between Linux, MacOS, android, and iOS.
+1 KDE Connect. File transfer works great on Android, Linux, and even on Windows 10/11! Clipboard sync is also a game changer; super easy to copy and paste across devices.
Kdeconnect. Alternatively NextCloud or sending an email to myself.
open source, can be self hosted or you can use the official instance.
Personally I have been using KDE connect most of the time when I am at home.
Pairdrop I use more when sharing with other people across the internet.
pairdrop
I like this a lot.
A question. Docs say:
Your files are sent using WebRTC, encrypting them in transit. Still you have to trust the PairDrop server. To ensure the connection is secure and there is no MITM there is a plan to make PairDrop zero trust by encrypting the signaling and implementing a verification process. See issue #180 to keep updated.
Does this mean if you self-host on your LAN for personal use without https, then nothing is encrypted, or does WebRTC negotiate its own crypto?
Sounds like WebRTC crypto is mandatory.
Never heard of that tool. Thank you for sharing it!
I use QuickDAV and OwlFiles.
For more manual stuff; Ssh and X-Plore File Explorer.
Internal, sd card, ssh, ftp(s), google drive, dropbox, and a bunch of other cloud providers; treats it all like one big file system that I can casually copy/move files between.
For just syncing files between folders: FolderSync. The ‘downloads’ folder on my phone is setup as a 2-way sync with a folder on my server. Drop a file in either side, click sync, file is in both places. I use this to keep most of the files on my phone backed up, not just syncing the download folder.
I was a dedicated xplore user for years until I saw all the advertising cookies that they stuffed into it. That made me sad and I uninstall it.
I just paid the whole 4$ for the pro version and to support an otherwise free app I’ve quite enjoyed.
No ads/tracking anymore.
Devs gotta eat.
I also had the pro version. Last time I installed it, it asked me to review a bunch of cookies.
This was about a year ago. Could have changed since then.
I keep a fairly close eye on my DNS traffic; it still does crash reporting through Crashlytics (which I just block), but that’s about it.
FX File Explorer has a local web-access feature. Start it on your phone and access via local IP, then just turn it off when you’re done.
Don’t use on public wifi, it’s http-only.
I use pairdrop. I don’t personally self host it, but that option is available. It’s better suited to more one-off situations, as there’s no history kept anywhere.
Selfhost: https://github.com/schlagmichdoch/pairdrop
Open instance: pairdrop.net
Not heard of this one. Thanks.
I use Cx file explorer and mount my PC via sshfs in there. It’s closed source but it supports a whole bunch of protocols including samba, ftp and webdav. And it can launch a webserver on your phone to offer the phone’s files. But sshfs is the most convenient for me.
And for links and other small texts I use either KDEConnect’s copy and paste sync or just send myself the text in Signal.
I often spin up a quick python http server. Just go to the folder which has the files you want to transfer and run the following command:
python3 -m http.server
. This will server the folder contentServing HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
. On your phone you can then browse to http://PC_IP:8000 and download what you want/need.Too much typing, especially if transferring from phone to computer.
Thanks though.
Signal
Yah if it’s not to big I use the note to self option in signal
You got some good replies and I personally am enamored by LocalSend, it is worth checking it out.
However, there is a simple way if a) you use whatsapp and b) the devices involved have access to whatsapp.
This involves not just sending files but you can send text and whatever whatsapp supports and you’ll have a history of these chats should you need to have them later again. Probably possible with other platforms but I use whatsapp so that is what I setup for information transfer to myself.
The thing you want to do is create a chat group, add a friend for a very brief moment, remove said friend again after they accepted, enjoy your private group where you can dump any and all info into and pick up from wherever you have whatsapp available. The trick is to add a friend for a couple of seconds. If you create a group you are automatically in it but you cannot use it until you add someone else, then it becomes active and use-able. The fact that you end up alone in that group does not make it unavailable again. Weird but it works.Hah. Nice hack!
Also, I love red dwarf.
For links, I use Pocket (you can use Wallabag, but I find the interface not efficient at all). For files, you can sync a folder with syncthing (but you only switch it on when you want a quick sync, otherwise keep it off for battery). If you just want to put some file on your phone, install FTP server (free) from F-droid and switch it on when you need it (there’s even an optional switch on quick actions). Use Filezilla or any file browser (if on Linux) to exchange your files. Remember to switch the server off once finished, because FTP is not a secure protocol.
Android -> other I often use Share via HTTP.
rsync -avr --progress
in termux or a file explorer app built on top of scp or rsync. It doesn’t work like your use-case, but I’ve been happy with it.