Hacker News new | past | comments | ask | show | jobs | submit login
LANDrop – Drop any files to any devices on your LAN (landrop.app)
195 points by kosasbest on Aug 24, 2023 | hide | past | favorite | 95 comments



In case anyone wants a variant that doesn’t even require a download I can heartily recommend:

https://www.sharedrop.io/

I think of Sharedrop every time HN has a discussion about how the web has gotten too complicated and it should just all be documents etc etc… here’s a truly useful app, cross platform out of the box, neatly sandboxed with no download required. If I was feeling paranoid and wanted to know if my files are being sent to some third destination I’d be able to open up dev tools to check. A lot more challenging with a native app.


https://github.com/szimek/sharedrop

"If I was feeling paranoid and wanted to know if my files are being sent to some third destination..."

then I would not use a third party website. I would want to prevent this unauthorised transmisison to a third party from happening rather than discover it was already happening. By then, it would be too late. Even just having all one's transfers, IP, time, date, possibly browser fingerprint, be recorded in someone else's httpd access log seems unnecessary.

But I'm not feeling paranoid. Rather, I like downloads. I like so-called "native apps", otherwise known as programs. I like them written in certain languages. I like to read and edit the source code and to compile static binaries. I enjoy it. Javascript is not one of the languages I prefer. Nothing against it. I just don't have much need for it if I want to transfer files.


You can open up share point then unplug your ISP cable and it will still work


I don't use SharePoint, sorry.

I have mutiple methods of transferring files between computers without an internet connection. None of them use Javascript.


I'm playing devil's advocate a little, but this doesnt mean it doesnt send your files to a third party, it just means it also sends them locally as advertised


I hate the Sharedrop UI. JustBeamIt is much better: https://justbeamit.com/


Can someone please explain to me why sharedrop does not work with VPN / TOR?

Does anyone know of any alternatives that work with VPN / TOR?

I love the fact that sharedrop is open source, you can host it yourself, it works without registration/login and you don't need to install anything except a browser.


VPN/TOR will traditionally take over all connections and route them through its own tunnel. Yes the tunnel does go over the LAN/WLAN but it does not interact with the LAN/WLAN directly and this is a good thing because it means that everything is sent protected to the VPN/TOR tunnel you use.


> If I was feeling paranoid and wanted to know if my files are being sent to some third destination I’d be able to open up dev tools to check. A lot more challenging with a native app.

The reason we're generally "paranoid" about running arbitrary code in the browser is that every fucking website wants to run arbitrary code in the browser, not because an app that actually has a reason to do it, does.

A website should just be a document when it is just a document, which is 95%+ of the content linked on HN.


I think there should be three modes, one mode for documents and two modes for apps. Right now the document "mode" is too overpowered while the "app mode" is under-powered. If the user switches to "app mode" it should give the website access to the web API's, while in document mode it should only be possible to manipulate the DOM. The second app mode should make the app more "native" like and unlock more API's. Or we should just fork the browser into two programs, one for documents and one for app runtime.


I tried sending test files from ios to android and vice-versa.

Both the times it errored out with “it was not possible to establish direct connection with the peer”

Both devices are in the same wifi network.


That's really cool! How does it do the actual P2P connections? WebRTC?


I use sharedrop so often and it's a godsend.


Another alternative: https://payload.app/ (disclaimer: I made it)

- Subjectively more pleasant UX/UI

- Drag and drop

- Directories are supported and reproduced on the receiver

- Resumes transfers that were interrupted, across restarts too

- No mobile support (Tauri is working on it)

I'm currently working on a paid WAN version with a free tier.


This would be absolutely perfect if it worked on mobile (not open-source either so nobody but you can add it!), without mobile it's useless for me :(

Good job though, it looks nice!


Absolutely. As a utility app for individuals, it's by far the most critical missing feature.

However, I need revenue to justify the project long term (I have no investors), so I'm prioritizing WAN. I've contributed to Tauri before, and I really hope I can keep using it end-to-end (cross platform dev is a mess).


LocalSend works on mobile and desktop, but requires installation.

https://localsend.org/

https://github.com/localsend/localsend


I tried this out, and yeah it seems to work pretty well. I've only done a few small transfers though


I would highlight the support for directories more. It's a vital feature that none of the others in this space seem to support.


In this case (docker image) I create an archive and send it, saves traffic too.


Any source? No support for FreeBSD it seems.


A similar utility (much more bare-bones though) that a friend wrote is https://github.com/akovacs/uploadserver

It's basically a nicer version of:

    python -m http.server 8000
Basically just start the file server, and then navigate to it using the web browser of your choice on any device (no need for a client application).

It works on Windows, Mac, and Linux, and therefore should probably work on FreeBSD as well if you can install a Rust toolchain:

    pkg install curl
    pkg install git
    pkg install rust
    git clone https://github.com/akovacs/uploadserver
    cd uploadserver
    cargo run --release
Then navigate to your machine's ip address port 8000 in the browser of your choice and upload files using the web UI or directly via curl:

    curl -X POST --data-binary @file_to_upload.txt http://localhost:8000/file_to_upload.txt
MIT licensed, so please feel free to do whatever you want with it as long as you provide attribution.


Short answer: no and no (although I've heard that people have used it on SteamDeck - completely a surprise to me)

I've never dabbled with FreeBSD. It seems to not be supported by Tauri (the GUI wrapper). That said, with the agent binary (written in Go) would probably work.

It's closed source, out of unethical front-running paranoia as I'm building recognition and trust. That said, I'd like to release the agent open source in the future (like Tailscale), which could easily double as a CLI.


Steam Deck runs Arch Linux, so they’re probably using the AppImage.

I think it’s a good selling point, because there’s no de facto app for transferring files between all 3 major operating systems. I’ll give it a try on Steam Deck.


I use LANDrop regularly. It's the lowest-friction solution I've found so far to the whole "why doesn't this #$%@#$% SMB access work, it was working fine last week" thing with a mixed-OS set of computers.


An aside, but I was just setting up a SMB share on a Linux machine (Ubuntu) and had the absolute similar experience as mentioned above. However, when hitting the share points with osx, it worked flawlessly from the original setup.

The windows machines on the other hand took a lot of figuring out to get the access I was looking for. Seems the windows built in username AND a (broken?) Form of password caching really does a number when using SMB shares hosted on a not windows machine. I 100% agree with you however, it is a super frustrating experience that leaves one bewildered, even though it should be simple to get up and running.

(It took far less time to setup goestools on 2 machines, than to get the shared folders to work correctly through the household)


Samba/SMB being so bad is the main reason I still often fire up ftpdmin and winscp to transfer files across machines.

That and bad USB ports.

And there being some decent FTP clients for android.


Why aren’t there any great remote drive mounting protocols? NFS works in some cases but is ancient and really only suited to cluster backplanes. Samba/CIFS sucks. SSHfs is a hack. It’s a super common thing that just has no solution.

I guess there’s way more money in solving it with a heavy cloud service that can charge rent for what should be a trivial core feature of every OS.


> NFS works in some cases but is ancient and really only suited to cluster backplanes.

I was given to understand that NFSv4 was made to be much better for these purposes?


Because there hasn’t been enough of a need. The main use cases are covered by what we’ve already got.


What's the problem with sshfs?


plan9's protocol seemed like it might have some legs...but it seems to be being deprecated


WSL on windows uses plan 9 protocol(s) to mount my linux VM as a folder under windows.

*As suggested by another HNer.


SMB is great and Windows handles it perfectly fine (as it should), but outside of Windows is problematic because Samba is sincerely fucking terrible and the only reason I can see why anyone uses it is because there's nothing better.

Seriously, I can even get my Windows 98 SE laptop to talk with the rest of my Windows machines (including Windows 11) via SMB perfectly fine. Meanwhile, Samba requires divine miracles just to get the bloody thing working for thirty seconds.


Counterpoint to SMB on Windows being great:

SMB usually works well in a domain environment between client and server machines if they are all on the same domain. SMB often and randomly does not work between two client computers on a domain and in workgroup environment. I have to configure SSH server on Windows computers that I access often because of random inability of Windows to talk to another computer (sometimes sitting right next to it).

Samba on the other hand takes some setting up but once it works, it keeps working...until the next OS/major version upgrade.


Here's some terrible, unholy advice along the lines of violating "don't cross the streams":

Setup a WINS server.

WINS, ancient and depreciated, and "they" say it should never be needed anymore, will act as a "cat herder" in a workgroup environment.

The nice part about WINS is the server requires no configuration. You start the service and point the clients to it and that's it. Configure your DHCP server to hand out the WINS address and you're done. There's a good chance your problems may disappear.


I used it to transfer mp3s between phones and now I cannot find the files on the destination phone. I mean I can play them from within the app, but they are not available in phone's file browser


I would really like an internet-enabled version of this, like magic wormhole.

I don't know of a magic wormhole client for iOS.

It's frustrating trying to transfer high-res photos between phones. All the messaging apps silently mangle them. :(

This would be perfect, but it only works on a LAN. AirDrop gets the job done in those cases.


https://xosh.org/p2p-tools/ Compile this list of web and CLI tools for this a while ago. Some of these are dead now.

EDIT: Found snapdrop at https://onedoes.github.io/snapdrop/ and a fork PairDrop is in active development https://github.com/schlagmichdoch/pairdrop


IIRC, snapdrop does compress/process pictures. Anecdotal evidence is receiving .jpeg's on my PC after sending .heic's from my iPhone.


I’m fairly sure that it’s iOS/Safari who does give the website the jpegs when you use the photo chooser.

Even in other sharing workflows, sending the HEICs is a pita.


Interesting, thanks for the clarification.

I've been searching for a low-friction way to get original photo files from iOS to Linux. USB has been really unstable and P2P sharing through Safari does not provide uncompressed originals (in general, apparently).


If you have iCloud, you can use icloud.com to get some or all your photos in a zip.

Or you can use scripts like this one : https://github.com/icloud-photos-downloader/icloud_photos_do...


Been running a selfhosted install of PairDrop for a few months now. It's so useful.


https://github.com/nwtgck/piping-server-rust/releases/expand...

https://github.com/nwtgck/go-piping-server/releases/expanded...

There is also a Typescript version.

Unlike MagicWormhole, this does not require Python libraries. Any HTTP client will do, whether graphical browser, text-only browser, curl, anything that can make HTTP requests. Javascript is optional.

There is an example server run by the author for testing but unlike MagicWormhole it is not a default; the address is not found anywhere in the source code.

https://ppng.io/noscript

Magic Wormhole, or PAKE in general, might be well-suited for use in the process of transferring files between two or more parties, but here the question was about transferring files between two computers operated by the same party.


I've found using cloud storage (i.e. actual cloud storage, not "automatically upload compressed photos to the cloud" storage) is the best for this. The magic wormhole type approach is are awkward over the internet with phones because each side has to synchronously agree on speed and uptime or the transfer breaks. With a cloud storage middleman you can upload as fast as your phone can whenever your device is up then anyone can download as fast as they can whenever their device is up.


croc works very well for this purpose: https://github.com/schollz/croc



It seems my browser (latest iOS on latest iPhone) doesn't support the necessary features.


I’ve only used it for local sharing but sharedrop.io claims to work over the internet via “rooms”?


Wormhole works perfectly, I did not know about this. Thank you for sharing.


Why not Tailscale drop? Cross platform, even mobile. Reliable. Fast. Easy.


syncthing!


webwormhole.io has been working quite well for me! It uses WebRTC-based P2P connections where feasible, but also works via relaying otherwise.


Using SHA256 I was able to prove mathematically, that files you upload to google drive are the same after you download them again. You could also plug an external drive into a raspberry pi (or any computer really) and run samba on it. You would have to do some research to find a good samba client for iOS as I am not an iphone user. You could make all the media on your samba server available to all the devices on your LAN.


I've been using Taildrop lately and it's very nice.


I’ll stick with https://pairdrop.net, doesn’t even require any installs or downloads.


What is this magic?! I didn’t know this was possible through a browser!


It's using webrtc for a p2p connection, see https://github.com/schlagmichdoch/pairdrop/blob/master/docs/...


I use a fork of this (or, rather, a fork of the original) hosted on my LAN.


Looks identical to snapdrop.net (before the domain shut down)


It’s a fork, I think, with some new features.


LocalSend is also worth checking out. It has a much better UX.


So this is like Taildrop but uses the local net instead of the tailnet?


Is this maintained?

No updates to the github repo in 2 years.


Feature complete, doesn't use WAN, I think you're OK unless you're on public wifi.


Looks like it is not. Maybe someone wants to maintain a fork.

https://github.com/LANDrop/LANDrop/issues/138


The MacOS version isn't even a UB2, it's still compiled for intel. https://www.sharedrop.io/ looks interesting through thanks afavour!


There are SO MANY of these out there and none of them are interoperable. Can't a few of the devs get together and define an open standard for nearby sharing so the Apple users finally stop (rightly) laughing at us?


Apple's version isn't interoperable either.

We already have standards for local networks: mDNS + FTP / SMB / WebDAV.


None of those are for sending files, they provide remote access to a filesystem. The find-connect-mount-browse workflow is good for many situations, but for when I want to send a photo to a friend sitting across the table from me, it's simply unusable.


ssh/sftp is interoperable


OT: Responding on a now-threadlocked submission of yours: <https://news.ycombinator.com/item?id=36966205>

That's worth retrying as it didn't get picked up. I'm still thinking through further responses though it's quite similar to concepts I've been promoting on HN for years now:

<https://news.ycombinator.com/item?id=10077674> 8 y.a.

<https://news.ycombinator.com/item?id=26893033> & <https://news.ycombinator.com/item?id=26822263> 2 y.a.

<https://news.ycombinator.com/item?id=34182022> 7 months ago



Android really did drop the ball on building decent native file browser apps for Mac/windows. Frequent adb disconnections or needing to reboot the Mac for the USB host/adb handshake to work...


This was a class of tool I didn't even know existed until recently. After Windows 11 came out I switched to Linux Mint, discovered Warpinator, and now I have one less problem in my life.


I am big fan of https://www.ssavr.com/. Unfortunately, the source code is not public


Just use KDE connect


thanks for sharing - I'd not heard of this but it appears to be available for both Android and iOS, presumably Linux too. Hopefully macos and windows?


Seems to be also supported on mac os and windows: https://kdeconnect.kde.org/download.html


Yep. Used on windows a lot.


(2021)

More discussion from the Show HN:

https://news.ycombinator.com/item?id=27481465


Yeah but why a downloadable? Can't we use webrtc to achieve the same on the browser itself?


The browswer adds another layer of indirection you don't need. Why would you prefer to download/use that functionality through the browser rather than straight to your machine?


Sandboxed execution environment. Alway up to date for both sides doing the sharing. And because I don't want to download some unrelated software just to be able to download a file from one of my other devices. And unless I'm building this app for each platform I use, I have no guarantees that the binary I'm downloading is from the code on the github.


This should work on ZeroTier since it emulates a LAN. Have to try it.


I like using pairdrop.io with the snapdrop android app


What protocol is used for the file transfer?


wait, why not just ssh/sftp?


Lots of configuration needed to be able to just send or receive files.

Am I supposed to make another account just for receiving files? What if I get it wrong?

How will I keep track of the long password I suddenly need or the keys I'm going to have to share?

And then I'm going to need a new app anyway because mobile has no builtin SSH.

And then there's no UI, so I'll have to do lots of typing and it will be more work unless you touch type...

SSH is great but this is a specific use case they're making a dedicated app for, that makes it easy and doesn't add more configuration, which I'd then have to maintain maybe want a dotfile management tool.

There's so many pieces to a CLI workflow. It's awesome if you do the kind of work that benefits from it already and everything's set up, but... I don't use SSH at home. Or have a dotfile management system. Or manage files often on the CLI.


can this replace sync thing?


This seems like an Airdrop replacement as opposed to an iCloud/Dropbox/GDrive replacement like syncthing?


So it's, scp?


Both scp and sftp has a different trust model - you need credentials set up beforehand. Configuring SSH/Linux permissions for sharing files in a low-trust environment is possible, but full of foot-guns.


Hopefully more user friendly...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: