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?

  • bigb@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    6 hours ago

    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.

  • Jason2357@lemmy.ca
    link
    fedilink
    English
    arrow-up
    1
    ·
    8 hours ago

    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.

      • Sir. Haxalot@nord.pub
        link
        fedilink
        English
        arrow-up
        6
        ·
        edit-2
        1 day ago

        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

        • Hinori@scribe.disroot.orgOP
          link
          fedilink
          English
          arrow-up
          5
          ·
          2 days ago

          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…

      • cthulhupunk0@lemmy.ml
        link
        fedilink
        English
        arrow-up
        7
        arrow-down
        2
        ·
        2 days ago

        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.

        • Hinori@scribe.disroot.orgOP
          link
          fedilink
          English
          arrow-up
          3
          arrow-down
          1
          ·
          edit-2
          2 days ago

          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 @[email protected]’s and @[email protected]’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!

          • horus_son_of_isis@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            ·
            12 minutes ago

            This is probably a terrible idea, but I have api sites set up with cloudflared for when I want to share something with someone, like if I want to share a file through gokapi or filbrowser, or share a jellyfin access. Cloudflare access is set to bypass except for country restrictions. Anything access I grant or share is behind at least a password, and share links are only for a couple of hours or days, then they disappear.

            All of my other services are restricted to me through cloudflare access, oauth, and the builtin user/pass access for each service.

          • non_burglar@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 day ago

            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.