I have a Samba mount at home (behind NAT, accessible via wireguard VPN), which works very well when accessing my home files when traveling (I travel a lot for work).
The only detail missing from this solution is sharing individual files with friends. I could give them access to my VPN, but that gives them access to everything, not just one thing I want to share. Also not all my friends are that tech savvy to manage connecting to a VPN.
What would be really great is to have a link-generator that punches a hole in the NAT to give them access to specific files. Are there any self-hosted solutions for that?
This is still a selfhosted sub isn’t it?
I use Pingvin. You upload a file to it and it generates a link. Has expiration on the link.
You can allow anonymous uploads or not, give friends logins etc.
I have it locked down to just me with a login and I use it to let others download the files.
Last I checked it was abandoned and no one is maintaining a fork either.
Good to know, thanks.
I tried it but Copyparty worked better, it has a massive community suddenly and tons of cool features that mostly stay out of the way unless you enable them
There are a few implementations of wormhole that might work.
If you’re ok with exposing a server to the internet, I’ve had good luck with sharry. https://eikek.github.io/sharry/
I’ve also had good luck running a Nextcloud instance to share with friends and family. But that is probably overkill here.
It’s not quite self hosted, but Soulseek allows you to share share private directories with buddies. Soulseek might require a port forward.
Other than that, there are the many pasteboard solutions that have been mentioned. They’ll either require a port forward or reverse proxy (nginx etc.) to access outside the network though.
you might configure Syncthing in that way
If I’m understanding the OP’s use case, Syncthing is a poor choice for this. It’s great for power-user secure syncing, but not for casual sharing.
Onion share might be an option.
Try nextcloud. It can generate links to files like this.
100% this. I have one running in a lxc, and I expose it to the world through a CloudFlare tunnel so I needn’t worry about dyndns or people probing my public IP.
Mind if u ask how much that cloudflare front end costs you a month for how many hits?
I’m on their free tier. If you don’t have a domain you need to get one, but CloudFlare does offer domain registration basically at-cost.
Because I’m on free, I can’t break down my analytics like a paid account can. i can say though that for the past 30 days my account has generated 886k requests and 47.56GB of bandwidth. I can’t tell you how much of that is nextcloud and how much is other stuff, like audiobookshelf, but hopefully this helps answer you.
Just run a web server and expose the specific files you want to share through that?
If you have Docker hand you can use my project Directory Lister to do just this quick and easily (Docker docs).
Yea just draw the rest of the owl duh! 🙄

python3 -m http.server
https://file.pizza/ just because the pizza toppings URLs are fun and nasty
not self-hosted
Could be tho. Link to github (“fork me”) at the bottom.
file.pizza can be self hosted, https://github.com/kern/filepizza
I’ve been looking for something like this as well. Hopefully someone has a solution.
Are both parties online at the same time?
Maybe something like this is a good solution: https://github.com/magic-wormhole/magic-wormhole
It will figure out the fastest p2p connection and send even very large files without hassle.
Another vote for Syncthing. Might be a little too complicated for some though
deleted by creator
https://xkcd.com/949/ has a few good hints.
I think this summarises all the other answers here
Copyparty is amazing
Just make sure not to shorten the name of that using the linux command for copy







