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?
- 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. 
- croc is really easy to setup as well, https://github.com/schollz/croc - it looks awesome tbh, thanks 
 
- 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 
 
 
- 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://xkcd.com/949/ has a few good hints. - I think this summarises all the other answers here 
 
- Onion share might be an option. 
- 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. 
- Copyparty is amazing - Just make sure not to shorten the name of that using the linux command for copy 
 
- Another vote for Syncthing. Might be a little too complicated for some though 
- 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 
 
 
 
 
- I use Warpinator in combination with tailscale - Does this require the recipient to install and sign up for Tailscale? 
 
- Just run a web server and expose the specific files you want to share through that? - Yea just draw the rest of the owl duh! 🙄 - python3 -m http.server
 
 
 
- Any particular reason why you can’t do something like host a Send instance instead? Better to treat “filesystem behind the network” and “files to share” as two different things: one is imanent, the other is punctual and sporadic. 
- You can consider using a Pikapods service for this. It’s dead simple to strand up a server when you need one. - https://www.pikapods.com/apps#storage - They have Gokapi and/or PrivateBin for just about a buck per month. You can turn the service on and off whenever you like. Good company to work with, IME, too. 








