Hello to all passionate selfhosting enthusiasts! Today, however, I have to ask you about a problem that can’t be fully solved by a selfhosted solution. But I believe it’s still closely related to selfhosting.
I’d like to automate mirroring some files/catalogues to different storage providers and then obtain public sharing links for each of them. So I’m looking at Rclone. It supports a variety of different storage providers, which is nice. But is there any structured information about which of them support sharing files via public links? There are just too many of them to quickly check them all.
So if there is no such data, I’ll probably also slowly try them out on my own to see which ones are suited for me, and post the results in the comments if you don’t mind! Maybe.
Well, ideally I’d certainly like to share these files with a selfhosted solution without relying on any 3rdparty «cloud» storage, but that’s not possible without either TLD and public IP or additional software besides web browser on the client side, right? So I’m looking for a somewhat pragmatic solution for now.
Also, maybe you have some useful tips on configuring Rclone for this task in general? I’m considering using union feature with create_policy = all to upload to several storages simultaneously, but is it possible to get public links in this setup?
Either attach your home server to a VPS or NextCloud, or start building the reverse proxy and DDNS stack on your local machine. I chose the latter because I have a stable IP address and the time to futz with things.
I have Proxmox running with Authentik running in an LXC. All public traffic gets routed to it and it sorts out which service the user will receive. My other services are located on separate LXCs/VMs, which have their own public subdomains. I also installed crowdsec inside the Authentik LXC to catch the automated bots looking for open ports and unsecured admin panels.
I am not an expert. If a VPS or Nextcloud gets you what you need, I would recommend either option. At the end of the day, you’ll need to pay someone for a public address.
Another option is a $5 vps and domain. Install caddy on it with caching, and point it at your local storage using SSH. Meets your criteria of self hosting the storage, but only caches on the VPS for performance. You could even use rclone to mount the files if you want.
More manual than the other options, but much simpler mental model and an excellent platform to learn how things work. Gives you the chance to also host a static website too.
You want NextCloud
I know, right? But it requires a valid TLD and a public IP, so this is not an option, unfortunately.
Yeah, if you are going to self host something like this you are going to need to be able to accept connections from people one way or another. Possibly a VPN solution like Netbird or Tailscale could work, but then all your users would need to have an additional client which is probably going to be a hassle.
Realistically you may want to look into S3 providers, and if they support public pre-sig link, which is most likely what recline link uses. Basically the S3 API allows authenticating with a signature as a part of the URL that are scoped to a specific object and optionally expires.
Edit: An option could be to use a small VPS as entrapping and setup a VPN to it, or something like Cloudflare tunnels
you can serve anything through a cloudflare tunnel without public IP
Interesting… I didn’t even think it could be used that way! So I might as well consider this option for real. Can it be used with a dynamic dns TLD?
Don’t feel brave enough to selfhost a public-facing service, though…
There is also Netbird reverse proxy. Which is similar to cloudflare tunnel but wireguard tunnels instead. There are videos on making links available only, via Netbird (https://www.youtube.com/watch?v=HoaLRuIdiNU)
Yea it’s called zero trust on cloudflare. Allows you to expose a service (ip : port) on your WAN on the net via a TLD with zero trust running. It’s a sort of tunnel, and because the ip address is cloudflare it obfuscates your ip. You can’t get exposed via dns a records. You can add restrictions too. I always do geo based and only let connections local to me in.
Can you do this without a domain?
No. Just buy an xyz domain. They’re like 1.99
Also for the second and following years?
No. Need a domain to assign the endpoint to a subdomain. Cloudflare do have at cost domains so you can get them cheap and consider it the cost of the service.
Check out using ddns. It’s not perfect, but works. There are updater containers you can run. NoIP used to have freebie domains, I bought a domain a while back, then switched to cloudflare for convenience despite it being cloudflare (you can leave tell them not to use their proxy for individual sub-domains). Bonus points for using something like nginx proxy manager or cert-manager to handle acme LetsEncrypt certs, because unencrypted http is BAD.
And… how to obtain a public IP, then?
because unencrypted http is BAD.
Sorry, I don’t enjoy such blatant wordings at all. I prefer to say «supports delivering content unmodified solely by a lucky chance» :D
Edit: now, after reading @benno@sh.itjust.works’s and @bigmclargehuge@lemmy.zip’s comments, I realized that Cloudflare tunnel could be used for reverse-proxying traffic to the local daemons! You know, when you think about Cloudflare, you genuinely feels nothing but repulsion after all that endless browser check pages, and don’t even consider it as something useful. So for now, I’m trying to wrap my head around all of this to ask a meaningful question. So it’s not over yet!
You are always behind a public IP, a dynamic DNS and domain help identify what that is to others without making manual changes every time your public IP changes.
Look at yggdrasil for ip address as well as end to end encryption




