I use KDEConnect. I don't know about iPhone but it works with Android, Linux and Windows.
Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
I have tried to use KDEconnect over and over, It doesn't work on my work network, it doesn't work on most of my home network, If my laptop my cell phone come up as different IPs it gets confused. It's discoverability is just absolutely horrible except for a select number of plain vanilla networks.
Damn that sucks :(. Seems to me I have to disable my VPN in order to discover devices, but I can re-enable it afterwards. I use it mostly for clipboard sharing between devices.
My home network is split between wired and wireless, they're on different IP ranges. I have every proper forwarding protocol and UDP sniffing everything set up so that devices can talk to each other across subnets.
It refuses.
So at home I can set it up on Linux to use a static IP to find my phone. And the phone kind of deals with it and works most of the time. But then I go to work and my IPs are the two devices change. Then I'm SOL.
Also if I'm home and I'm roaming onto one of my other networks to talk to security cameras or something it's incapable of talking to my PC.
Honestly it's discovery is just bad for me. I really wish that it's supported a list of IPs, or gave me some kind of client I could run in concert with tail scale or I could move s*** around it's just absolutely inflexible and for no good reason.
I usually use kde connect.
KDE Connect also works on Gnome, Windows and Android. I can't recommend it enough. Transfering a single image from phone to PC is instantaneous
And having a unified clippboard is just so convenient
I use a Gnome implementation of this and it works great too.
Yeah, me too. It is quick and easy. I use SyncThing for things I want to keep synced.
Do you have any hosting in your home lab? Preferably something for running a docker container, but a hypervisor could do the job too.
Nextcloud is an option if you do. Technically speaking you could properly protect it and make it public. You don't have to do that though. Any file you upload on your computer could be copied to your phone or vice versa. If it's public, then this could be done from anywhere.
Yes, I have a Linux vm for docker. I've chucked up a pairdrop container. So easy.
Can't say I've used that... Yet. I like nextcloud because besides being compatible with Linux/Windows and having an Android app, it also has a simple web UI to access the files. It's probably closer to self hosted OneDrive than anything else I can think of. Kinda like the simplicity of pairdrop though.
I love localsend.
Works on Linux, Android, iOS, Windows, and Mac. It is basically an OS agnostic Airdrop.
It's FOSS, so you can go to the Github and build from source for OpenBSD, but I have no idea if that would work.
Dart (the language it's written in) doesn't work on BSD, so sadly that's out of the question for now.
Dang, that's too bad. Hopefully one day!
I mean, the fastest method is likely to just plug the phone into PC and pretend it's a flash drive?
I don’t know if it is always the fastest. I know they said android, but for example on not too old Apple phones (pre-usb c), I had the impression you could get better throughout on wifi compared to a cable connection. Maybe that’s just apple trying to squeeze money on proprietary connectors, but other manufacturers seem to copy their worst takes sometimes though.
Open source file manager Material Files lets you set an SSH server as a bookmark and mount it instantly. Moving files around just like like it's native. Works seamlessly through Tailscale.
A cable
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 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.
+1 Love LocalSend!
For a single file, I just use Bluetooth. For a lot of files, or a really big file, I plug my phone into the PC and set it to storage device.
sftp
Kdeconnect. Alternatively NextCloud or sending an email to myself.
Seconding sending an email. SMB for big stuff.
I ll just hijack this thread : when plugging my android into laptop, the laptop doesn't recognise it as anything. And the phone doesn't give me the option to "share files" instead of just charge. Does anyone knows what's wrong?
Check if your cable has data lanes, some cables don't have them and can only be used for charging. Tap the charging notification and check if you can change it to file transfer.
Had the same issue before, cable was the cause.
I use ADBFileManager https://github.com/T0biasCZe/AdbFileManager/ which is much faster than MTP
In my testing, the program copies files at speed of approximately 41.6MiB/s (332Mib/s) over USB 2.0, compared to MTP that copies at around 10Mb/s
For single files, I use qrcp
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.
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.
I'll add in Bitwarden Send (including self-hosted vaultwarden), although probably doesn't make sense if you're not already using it for password management.
SFTP or Matrix
As I have basically all devices connected to my Nextcloud instance, I simply use that. I don't have any "time-critical" file transfers though.
I'm not sure if there's one the best tool, depending on a case, I use mix of
- scp
- localsend
- croc
- https://github.com/dutchcoders/transfer.sh
- https://github.com/stonith404/pingvin-share
- pbcli (pastebin)
- I also have a script that sends me mail with files attached
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.
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 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.