Syncthing
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!
You can use syncthing to transfer files across the internet? How? I thought it was only for local networks
By default out of the box it will transfer over the internet if it needs to.
Er, wait, are you using Syncthing for its intended purpose of syncing files across devices on your local network? And then exposing that infrastructure to the internet? Or are you isolating Syncthing instances?
Syncthing is not limited to local network. It's hole punching is one of the major features
Yep, I've got a buddy in another country that I needed to share a group of files with, it was several gigs and we were both editing things.
We setup a syncthing connection and once we were synced it just worked. I also use it on my LAN to sync personal files, but to share with him we both just set up a folder and I just shared that one folder with him while the rest of my shares stayed private on the LAN.
Syncthing is amazing.
Syncthing is not just for LAN use. Even their homepage mentions transmitting data over the internet
I've been using it to sync devices over the internet for years. It's also how people use it to sync from say their desktop to their phones, remote server, etc.
If you watch your network firewall Syncthing does reach out to servers on the internet to help it find other devices so e.g. if you enter the other device's ID (example ABCDEFG-ABCDEFG-ABCDEFG-ABCDEFG-ABCDEFG-ABCDEFG-ABCDEFG-ABCDEFG) it can reach out over the internet to find that specific ID to pair with. I think Syncthing uses a sort of DHT resolver to find other devices, I know on my firewall I had to whitelist Syncthing's servers to make it work.
I was going to try to link you some references but their forums seem to have connection issues at the moment, you may want to search around later if you're interested how Syncthing works over the internet.
Syncthing is designed to be used over the internet, it's why it supports NAT hole punching, relay servers, and discovery servers.
It's very much a WAN solution too. I use it to push my files to a Pi Zero W that's 200 miles from my house. I use it as an off site store of my files. The Pi is connected as an untrusted device in Syncthing so that all files sit encrypted at rest.
Syncthing has public releays enabling it to work (dunno if one or none need to be public) without both parties being exposed.
RFC 2549: https://www.rfc-editor.org/rfc/rfc2549
This problem was solved years ago: https://spectrum.ieee.org/pigeonbased-feathernet-still-wingsdown-fastest-way-of-transferring-lots-of-data
You could try wormhole. It makes a direct connection.
Super easy. Spin up an OpenVPN server, forwarding the right ports to your server. Now spin up an Apache server with the folder your file’s in as server root. Send the client config for your VPN to your friend, along with the local address of your HTTP server. Now they can install the OpenVPN client on their PC and download the file from your HTTP server. Once you’re done, tear down all your servers, and don’t forget to unforward the ports. Couldn’t be easier.
/s
I have non-ironically gotten responses like this
Okay can you explain why thats a sarcastic answer? Is one of those first three steps way harder than I think it is?
Cause that’s not simple or easy at all. It takes a fair bit of knowledge to set up all of these things.
openvpn and apache can be very time consuming to set up if you do it for the first time
Before I moved I used to use my web server.
My Domain . Com / files . Zip And I would set a password on the zip. After they download it, they tell me and I remove the file.
Me and my friend used netcat to transfer 30 GB of files put into a zip. Very fun, would not recommend
I've used:
But for slower connections bittorrent is the best option by far because it doesn't care about interruptions, and verifies the data as it goes. Just gotta make sure you're port forwarding the client.
I’d have to have friends across the internet that wanted files first…
If they are local, you can just put it on a thumb drive and physically transfer it.
Absolutely, that is definitely preferred when possible!
Create share links allowing anyone with the link (+ optional password) to browse and download individual files, or whole folder contents.
If someone needs to send me a file, I can create a user for them in a few seconds; so they can upload to that as well.
Friends I know IRL: Thumbdrives.
Friends I only know via the Internet: Torrents or IRC filesharing.
Though knowing that a homing pigeon with a thumb drive is actually faster than the fastest Internet network on the planet, maybe I should simply invest in a coop and some pigeons. 🤔
Though knowing that a homing pigeon with a thumb drive is actually faster than the fastest Internet network on the planet
Depends on how big the flash drive is, I suppose. Need to send a 1GB file? Just make a torrent. Need to send 40TB? Yeah, that hard drive is getting driven across town.
Perhaps two pigeons could carry the hard drive on a string. I've heard tell of swallows that have done this with coconuts.
I literally just set up a container for Erugo for this exact thing. It worked perfectly and was super easy to do. It's just a self-hosted version of wetransfer. Could be helpful...
I'd go for syncthing over nextcloud for your specific usecase. Nextcloud isn't good for unreliable connections and they're sticking with the annoying decision of not supporting server to server synchronization.
My use case is a bit different than yours but still worth mentioning, I think; I have Sharry running in Docker and it makes sharing and receiving files super easy. All downloads and uploads are resumable so they work well even in unstable networks.
If its a file from my seedbox: Direct share link (optional pw)
Local file: OneDrive
I used vaultwarden just the other day for this purpose. I mean, I use vaultwarden daily as a password manager, but it also has secure file transfer.
I have a minio instance that I use to distribute files
Reminds me I had been needing to find something for this too. Looks like I had thought about using Croc.
Just share the folder on soulseek. Probably not advisable for any sensitive information though xD
I've use Plik before with success.
Wormhole.app, can't recall if they have a limit atm
I use wormhole, but when I've wanted to use that website for receiving, I can never tell how to do it.
Can you actually use that site to receive files?
Whoever uploaded them has to send you a link to them. It does have a limit of 10gb, but its pretty reliable I'm my experience.