Live data from Hacker News

YouTransfer: Self-hosted file transfer and sharing solution

github.com

101–110 of 111 posts

Re: YouTransfer: Self-hosted file transfer and sharing solution

#102
post #99
post #32

Earlier quoted context omitted.

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.

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/us…

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.

Re: YouTransfer: Self-hosted file transfer and sharing solution

#103
post #99

Earlier quoted context omitted.

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/us…

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'…

> 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.

That's not all it is. It's your cryptographic public key.

> 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.

Sure, that makes sense. How else would you propose that it work?

Just to mention, you can use a private, self-hosted discovery server.

Re: YouTransfer: Self-hosted file transfer and sharing solution

#104
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.

Re: YouTransfer: Self-hosted file transfer and sharing solution

#105

Earlier quoted context omitted.

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

So do guests need an account?

No, you can just create guest link for single use.

Re: YouTransfer: Self-hosted file transfer and sharing solution

#106
post #67
post #60

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

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.

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).

Re: YouTransfer: Self-hosted file transfer and sharing solution

#107
post #67

Earlier quoted context omitted.

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.

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).

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.

Re: YouTransfer: Self-hosted file transfer and sharing solution

#108

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 TC…

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.

Re: YouTransfer: Self-hosted file transfer and sharing solution

#109

Earlier quoted context omitted.

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

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?

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