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?
I use ownclowd
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.
Not selfhosted but after I found catbox.Moe I haven’t had yo worry about sharing files.
I would not rely on catbox for the long term.
That’s always sound advice
This is still a selfhosted sub isn’t it?
deleted by creator
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.
https://xkcd.com/949/ has a few good hints.
I think this summarises all the other answers here
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.
https://file.pizza/ just because the pizza toppings URLs are fun and nasty
not self-hosted
file.pizza can be self hosted, https://github.com/kern/filepizza
croc is really easy to setup as well, https://github.com/schollz/croc
it looks awesome tbh, thanks
Copyparty is easy, but if you can both set up syncthing, that makes it a breeze. I have a sibling that lives across the Pacific and last time they visited I set up syncthing on their laptop and when either of us wants to share something, we just drop it in that folder and wait a minute or two.
Dang. I never thought of using the discovery servers for that purpose. Creative! Just hope that one side doesn’t accidentally delete everything in there…
Copyparty is amazing
Just make sure not to shorten the name of that using the linux command for copy
Do you have a public-facing internet-presence? If so, then I’ve heard good things about copyparty.
I’m using Nextcloud for this, but that seems a bit overkill for your usecase.
Edit: they explain how to use a cloudflare tunnel, so no public IP needed, actually.
How do I learn all these terms?
Having come from zero knowledge, to now self-hosting for over a year, I can tell you that you just search for them one at a time. Sometimes they will make sense. Sometimes not yet.
Stick around here, ask questions, and look things up.
I’m not sure if I’m using all of those 100% correctly (e.g. “Public facing”). But either use a search engine, or just ask.
What terms do you have in mind that you want to learn about?
Sorry I meant more what’s in that git summary,
Portable file server with accelerated resumable uploads, dedup, WebDAV, FTP, TFTP, zeroconf, media indexer, thumbnails++ all in one file, no deps
I know FTP but the rest I dont really understand. Im often confused by stuff on git.
I haven’t looked at that GitHub but I’m familiar with most of the terms so here goes (verify them if you wish, I can’t promise full accuracy).
portable file server with accelerated resumable uploads: portable most likely means it’s easy to transfer from one server to another should you ever upgrade servers or anything else. resumable means you can pause the transfers if you desire.
dedup: it will automatically deduplicate files. so if you upload the same file twice it will just use the one you previously uploaded, saving space.
webdav is for distributed authoring and versioning. I don’t know a crazy amount about it but assume it means there’s some code in place that aids with collaboration as far as sending a file, working on it, and reuploading goes.
ftp: file transfer protocol.
tftp: trivial file transfer protocol. good for small things but iirc it’s not inherently secure
zerconf: plug and play. no messing with configs needed.
media indexer/all in one file: most likely indexes media uploaded and stores the generated thumbnails in one big file. most likely this is so it’ll be easier to transfer the install to another server if needed (you can move one big file containing all the thumbnails instead of a bunch of tiny ones).
no deps: no dependencies, everything you need is self contained in that repo.
again, double check things your curious about but that’s my interpretation of what most would agree is kind of just a keyword filled description lol
Webdav is just a http “file system”. You can then e.g. mount the storage space as a webfolder in your operating system.
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
Another vote for Syncthing. Might be a little too complicated for some though







