Brian Lovin
/
Hacker News
Daily Digest email

Get the top HN stories in your inbox every day.

hacb

I'm using LocalSend for local network sharing needs (typically stuff between my laptop and my phone). It works like a charm, and is really easy to use

https://github.com/localsend/localsend

tamimio

I did try a bunch of these peer-peer file sharing, the best ones the worked well are localsend and LANdrop, as I have a screen (basically a custom android tablet) in my car and I needed to send files without the car accessing any wifi, those two worked well. The others I tried that didn’t work well were: Arc, Sharedrop, pairdrop, and snapdrop.

mekster

SnapDrop was so buggy that the transfer speed was very slow, sometimes hitting the send button did nothing, and need to open browser on the target machine first and recently somehow it stopped working completely, I figured installing NextCloud client on my Android phone solved it easily to have the file arrive instantly without complications.

davidcollantes

Having to download an app for each platform to use it is a huge drawback for me. LANdrop seems to require this (unless I am not understanding it well).

tamimio

Maybe a drawback for your case, but it’s the feature I was looking for, one of the devices (my car screen) has no internet access at all, so I loaded the APK file there, and used it to transfer the files from my iPhone to it without internet, it wouldn’t be possible with the likes of snapdrop, and it didn’t even work properly in other two devices that had internet access.

luckman212

Been running a selfhosted PairDrop instance for about a year now and it's amazingly useful. No apps to install, just web based "AirDrop" that works across macOS, Windows, iOS, Linux...

https://github.com/schlagmichdoch/PairDrop

LambdaJon

Out of interest, What’s the advantage of self hosting vs using the web version on the main page? Are there security or convenience benefits?

luckman212

The main ones for me are not being dependent on someone else's server, and being able to use my own domain name.

moontear

Last checkin four years ago and README says „looking for a new maintainer“. Is this abandonware?

causi

I've seen probably four or five different brilliant file transfer solutions that totally solved the person to person file transfer problem posted to HN and every dang one of them was shut down or abandoned.

kjkjadksj

Because the problem doesn’t exist. Non tech folk use stuff like imessage to send things and rarely deal with large files at all beyond images or video. That works fine for them. Tech people use proven existing tooling like rsync or ftp. The only market that exist for this I’d guess is resumeware which explains why these projects are all built then abandoned.

IshKebab

Tech people don't use rsync or FTP because those are terrible solutions. FTP is insecure and requires setting up a server. Rsync requires an account on both machines.

In my experience companies usually end up paying for a service that solves this problem for their employees. Yes really.

Anyway I would suggest using

https://magic-wormhole.readthedocs.io/en/latest/

or RustDesk. RustDesk has a nice GUI and file transfer has a really nice two pane file explorer view but that is obviously not great for transferring files to people you don't fully trust.

Aachen

> Non tech folk use stuff like [messengers] to send things

Yes, and tech folks too, but what about if you're not already connected friends? You don't want to invite your entire audience at a conference to send them slides.

You either need to already have a website and say "click on News and find the entry for today", have them type over some long URL with perfect accuracy, or use a link shortener to the same effect. It always requires having hosting, unless there exists file sharing services. That's the problem these things solve.

Also mind that there are size limits in most messengers on the order of a few hundred megabytes. You don't run into them that often, but whatcha gonna do when you do? A dedicated file sharing service that supports in the gigabytes range solves that situation as well.

ckcheng

stavros

I've been using Send, which I really like: https://github.com/timvisee/send

XorNot

I'm self-hosting Pairdrop on my home network. It's a great solution to the problem of moving files around in an inhomogenous device environment".

undefined

[deleted]

skottenborg

I can recommend PicoShare which I've been self-hosting for a while. It's a couple of years old now and still maintained. Also, it's very simple and allows for guests too.

https://github.com/mtlynch/picoshare

1over137

So do guests need an account?

scrlk

For a Linux user, you can already build such a system yourself quite trivially by getting an FTP account, mounting it locally with curlftpfs, and then using SVN or CVS on the mounted filesystem. From Windows or Mac, this FTP account could be accessed through built-in software.

prophesi

For context, this is a parody of the infamous https://news.ycombinator.com/item?id=9224

quesera

> "getting an FTP account"

There are myriad options if you get a server of some kind. A webserver is even easier to get, and to share, than an FTP server.

That's not the challenge these projects attempt to meet.

lnxg33k1

For that you can also use sparkleshare, abandoned but its just a git frontend

undefined

[deleted]

notso411

That sounds like a whole lot of effort. Just buy iCloud.

theblazehen

It's unfortunately not FOSS, but I quite like https://wormhole.app/ - It's client side encrypted and P2P when possible

feross

One of the two creators of https://wormhole.app here :)

Now that we’ve shifted our company’s focus to https://socket.dev, I’d love to open source Wormhole. I’m quite proud of the code - I’ve worked on P2P and file transfer systems for so so long that I think this might be some of the best code I’ve worked on.

It’s just a matter of finding the time, but I expect this will be open source eventually.

kilroy123

Agreed. That's my favorite as well.

undefined

[deleted]

ajsnigrutin

Apache is still maintaned, so is nginx... just throw the file into a folder accessible by the webserver (within documentroot), and you're done :)

nurettin

This is what I do. But these projects give you uploading, hash url generation and thumbnail previews as well, if you care about such things.

rbut

We use PsiTransfer [1] in docker. Recently updated, so not abandonware. Serves our needs really well.

[1] https://github.com/psi-4ward/psitransfer

1over137

Has recent commits, but last release 2022-11-14.

h4l0

Demo page also returns an error from Heroku.

martinbaun

I recently started using SyncThing, it seems just perfect to share between two people. Maybe I'll put it on a server as well so we can sync without being online.

noirbot

It's definitely pretty nice, but the ergonomics of it for someone that's not that good with computers can be a little hard. I've gotten synced folders into bad states before that took a long time to fix. It's also kinda awkward having to send over a nominally private and very long ID string to set up the share in the first place.

Cyphase

That's not how Syncthing keys/IDs work.

That device ID you have to send to someone is not nominally private; it is in fact explicitly the public key of a key pair. If you use the public discovery servers (which is the default), that key is sent there so people who'd want to connect to you can look up your IP address with it.

https://docs.syncthing.net/users/security.html#global-discov...

https://docs.syncthing.net/users/faq.html#should-i-keep-my-d...

> Should I keep my device IDs secret?

> No. The IDs are not sensitive. Given a device ID it’s possible to find the IP address for that device, if global discovery is enabled on it. Knowing the device ID doesn’t help you actually establish a connection to that device or get a list of files, etc.

> For a connection to be established, both devices need to know about the other’s device ID. It’s not possible (in practice) to forge a device ID. (To forge a device ID you need to create a TLS certificate with that specific SHA-256 hash. If you can do that, you can spoof any TLS certificate. The world is your oyster!)

noirbot

Ah, thanks for the clarification. I guess I just saw a key larger than an IPv6 address and assumed it was something I couldn't share openly. It does seem weird that it's that big then. 50+ characters that can be A-Z0-9 feels like an insane amount of entropy for something that's essentially a proxy for a 12 digit number. It's longer than Windows product keys or the SSH public key I use for Github!

Additionally, I don't necessarily want a key sitting out there that will let any random person who finds it a dynamic way to look up my current IP address. It's not the worst thing in the world, but it's definitely not something I'd publish publicly.

brnt

Having the whitelist all peers on all peers is a chore.

I stick with Resilio for this reason. For over a decade now it had been a 100% reliable fire and forget tool.

Cyphase

> Having the whitelist all peers on all peers is a chore.

You don't have to do that with Syncthing. See https://docs.syncthing.net/users/introducer.html

> The introducer feature lets a device automatically add new devices. When two devices connect they exchange a list of mutually shared folders and the devices connected to those shares. In the following example:

> Local device L sets remote device R as an introducer. They share the folder “Pictures.” Device R is also sharing the folder with A and B, but L only shares with R.

> Once L and R connect, L will add A and B automatically, as if R “introduced” A and B to L.

> Remote device R also shares “Videos” with device C, but not with our local L. Device C will not be added to L as it is not connected to any folders that L and R share.

martinbaun

Resillio is working in the same way? what's the pros/cons?

martinbaun

hey Noirbot, I haven't used it for long. Can you tell me thei ssues you had a little in depth?

noirbot

Let's say I want to share a file with a friend internationally. First off, while there are some reasonable UXes for Syncthing, a lot of them are pretty basic, or rely on running a daemon and then connecting a web browser to Localhost to see what's up. Once they get it set up, then I have to actually set up the share with them. To get them hooked up to my share, I have to send them a 50+ character ID string somehow, which they then have to input into a UI that's far from easy to use. The key is much too long for me to want to read over the phone, and putting it in a chat somewhere means that if that chat ever leaks, my private key for my shared folder is out there. They offer a way to send a QR code, but that has the same leak risk, and scanning a QR code on the computer you're already on is awkward.

In short, it's a great tool, it works well in general, but the initial setup is pretty cumbersome if all I want to do is send a couple files to someone.

Additionally, I've had a couple time where even just syncing between my own devices broke. I think it was something where files were changed on both sides and the reconciliation algorithm got confused, but it was hard enough to debug for me, with direct access to both devices, and decades of experience running and programming computers, that I'd never want to try to debug that over the phone with a friend.

g_p

One convenient feature if you run a third instance on a server is that you can "distrust" the server by encrypting the files you sync (this is done at share level), then only entering the decryption password on the trusted end devices. That way plaintext file content doesn't sit on the server.

It's worth checking exactly what is encrypted as I don't think folder and file structure and names were encrypted.

martinbaun

that's superb cool!

Can you tell me what this feature is called?

wadim

https://docs.syncthing.net/users/untrusted.html

It's a setting you can find in the advanced tab of devices.

bayindirh

I use syncthing between three different systems and it’s great for keeping multiple systems in sync. One of them takes daily backups of the shares, so I have time-machine like backups too.

martinbaun

sweet! this is the setup I am looking to do as well.

bayindirh

It works very well with SBCs. If you're resource limited, Syncthing plays great with Cgroups limitations as well.

INTPenis

I've been self hosting a fork of Firefox Send[1] for years now, probably since Mozilla cancelled their Send project.

Lately I've also started self hosting Pairdrop.[2]

1. https://timvisee.com/projects/send/ 2. https://pairdrop.net/

teddyh

Every time someone invents an actually effective method of person-to-person file transfer, it gets used for piracy and blocked and shunned.

syeare

The age of piracy has dawned upon us yet again! WHO wants to be paying $100+ every month to Disney+ Netflix Hulu etc. just to watch 1 or 2 shows on each service?? Who the hell wants to pay for a game that works worse and hurts the customers more than a deDRM'd, cracked version?

POWER TO THE PIRATES

paulryanrogers

People who don't want to faff about with VPNs, BitTorrent, malware scanning, and the anxiety of never knowing if your gaming machine has been compromised or not.

crtasm

You need to be careful with executables, that's true, but

Signed GOG installer? That'll be fine.

File checksum matches known scene release? That'll be fine.

I've heard of more people getting infected via Steam than by torrent downloads recently (see: Slay the Spire on Christmas day).

EduardoBautista

I usually only have one active subscription at a time.

crtasm

What do you wish to use that is blocked?

windthrown

I'm still bitter that abuse brought down Firefox Send

sebazzz

I built something similar in ASP.NET: https://github.com/Sebazzz/IFS

Chrupiter

When I need to transfer a file from PC to smartphone, I do a

python -m http.server 8080

then from my phone I just use a browser.

1vuio0pswjnm7

Another alternative. This uses only HTTP and requires no special software, except the server. Elegant, IMHO. Extremely robust in fact.

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

After starting the server, a few options.

Method 1: Visit https://127.0.0.1:8080 in a Javascript-enabled browser and fill out HTML form

Method 2: Visit https://127.0.0.1:8080/noscript in any browser and fill out HTML form

Method 3: Use any TCP or HTTP client. For example here is a quick and dirty shell script

       #!/bin/sh 
       test $1||exec echo usage: $0 something file
       test $2||exec echo usage: $0 something file
       x=$(stat -c %s $2)
       {
       printf 'POST /'$1' HTTP/1.1\r\n'
       printf 'Host: 127.0.0.1\r\n'
       printf 'Content-Type: multipart/form-data; boundary=\"yxxxxzxxxzxxxzzxyxzx\"\r\n'
       printf 'Content-Length: '$x'\r\n'
       printf 'Connection: close\r\n'
       printf '\r\n'
       cat $2
       echo ---yxxxxzxxxzxxxzzxyxzx
       } \
       |nc -vvn 127.1 8080
     
       laptop> 1.sh whatever 1.pdf
       phone> curl http://127.0.0.1:8080/whatever > 1.pdf 
       laptop> 1.sh 1.pdf 1.pdf
       On phone, type into browser: https://127.0.0.1:8080/1.pdf
       This file is saved as 1.pdf
       YMMV
There is also a Rust version.

1vuio0pswjnm7

Correction:

Replace 127.0.0.1 with an appropriate address for computers on the LAN, e.g., RFC 1918 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12.

blacklight

Before trying it in my lab, could the author elaborate on what's its killer feature?

The README mentions that it's an alternative to both Dropbox and WeTransfer. My current alternative to Dropbox is Nextcloud, and my current alternative to WeTransfer is (formerly Mozilla) Send. What's the added value of YouTransfer compared to this solution?

I'm also put off by the fact that the README has a big "looking for a new maintainer" disclaimer on top, and the demo page doesn't even work. Sure, I could put enough effort into maintaining a project if I see its added value, but in this case it seems to be a product trying to sneak into a market where there are already viable and well-maintained open alternatives.

sureglymop

How do you like Send and is it still maintained?

I also use Nextcloud but use the Floccus browser extension to sync bookmarks to Nextcloud. Works well when it works.

stavros

I really like Send, I'm not sure it's still maintained, but it works well, so I don't know what there is to maintain. It comes with a cli utility as well.

https://github.com/timvisee/send

1over137

There's almost always security issues to maintain. Software is never "done".

adamm255

Used this in the past, imagine WeTransfer, but you run it yourself. That’s it.

mr337

For one off for technical folks on both ends I like the magic-wormhole cli tool. https://github.com/magic-wormhole/magic-wormhole

factormeta

Just FYI, Quiet also allows unlimited file transfer size: https://tryquiet.org/

Not saying it is most efficient, but for non tech friends, that may be an option.

toomim

And for non-technical folks I use wormhole.io.

kjkjadksj

If you are working with technical people might as well just use ftp and be done with it

Dotnaught

Partially open source (the crypto) and easy to use. Free though not self-hosted: https://wormhole.app/

say_it_as_it_is

There seems to be a trend of people on HN sharing abandoned projects seeking a maintainer

stavros

I even made a community for that! https://www.codeshelter.co/

It's abandoned, though.

actionfromafar

Haha taking the long play to the punchline!

stavros

I've been setting this joke up for five years!

squarefoot

Because there are many unknown, probably worth of being picked by some volunteers. I think it'd be worth creating some place (HN subsection?) where a list of dead or unmaintained, still worth of attention, projects could be kept so that potential maintainers could be made aware of their existence. Just a simple list, all text, one line per project with a bunch of fields: YYYYMMDD formatted date of last update | Name (resolving to link to the project page) | Short description | clickable short list of say max 5 tags so that users can find similar ones just by refining the search to the desired tag(s).

kjkjadksj

It takes so much time and effort though. It would really be a labor of love to take up someones abandoned piece of work thats probably got deep structural issues if the author decided to pack up and leave already.

jarym

Sounds like a perfect thing to fine tune an instruction following GPT on?

Daily Digest email

Get the top HN stories in your inbox every day.