I’ve been running 2 linodes for a number of years now - one has my website (wordpress) on it and one has a Foundry VTT server running. Both are separate linodes, and I use Google Domains to point [site.tld] to the wordpress VPS and foundry.[site.tld] to the other linode.

For a few services I run at home within my own network (Sonarr, Lidarr, Plex, etc.) I’ve started to use Docker and Portainer, and I like how easy it is to set things up (and remove them if they don’t work). I’d like to redo my VPS similarly - I’d like to have a single linode, as a Docker host, and have the main domain point to a Wordpress container, a subdomain point to a Foundry container, and be able to easily add other containers for something like freshrss, etc. My goal is to be able to quickly spin up a docker via a compose file (portainer would be preferred), have it automatically reach out to letsencrypt to get a cert for the relevant subdomain, and have that subdomain point to that docker container.

I’ve been doing some searching around, and there seem to be a number of options, things like nginx reverse proxy, traefik, etc. and there are a lot of conflicting results.

Does anyone here have an opinion on this or some advice as to what the best option to look into might be?

  • vividspecter@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 year ago

    I’ll throw in SWAG as another option which I found was easiest to setup, albeit it on a VPN/local only setup. It supports certbot for SSL and pre-defined proxy configs for various services (mostly linuxserver.io containers but there are others) and it’s easy to edit them to make your own configs. I’m not sure about portainer support as I’m not familiar with that.

  • chiisana@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    1 year ago

    Everyone has an opinion, and at the end of the day, whatever works best for you is what you should stick with.

    I like Traefik because you can mount /var/run/docker.sock:/var/run/docker.sock:ro to Traefik, then it can read labels from containers, and automatically wire up new instances based on labels on them. I’m sure there’s equivalent in other reverse proxy solutions, but as I said, it works for me and I like it.

    I give that container my Cloudflare origin certificate, everything gets encrypted in transit to Cloudflare, and then Cloudflare handles all the SSL management for me, as well as provide extra layer of DDOS protection.

  • Lupec@lemmy.lpcha.im
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    1 year ago

    As someone who’s used pretty much every solution out there at some point, I have thoughts on the main contenders:

    • Traefik is great if you’ve got a purely docker setup. It’s extremely powerful and the dashboard is quite nice, but it’s quite complex and it’s got a lot of moving parts. Docker integration works great but the whole label configuration thing is clunky, and the documentation can be confusing.
    • Caddy ingests a dead simple config and just works. Can easily handle cert renewal behind the scenes without you even having to think about it, drop the dynamic DNS one in and you basically have it all covered. There’s even one that gives it Traefik-like capabilities, although I can’t speak for how well it works in practice.
    • NPM works great if you’re more of a GUI person, very straightforward and impossible to screw up but a bit more annoying to go off the beaten path imo

    I personally favor Caddy these days, but they’re all solid choices.

  • PriorProject@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    I have a setup very similar to what you described in terms of having several web geegaws hiding behind a proxy, with Docker to manage them all. Foundry is even part of my setup as well (speaking of which, join https://lemmy.ml/c/FoundryVTT it’s still pretty dead in there but one of the reddit mods came over and while they’re not promoting things they’re keeping an eye on them).

    The proxy server of choice is very much matter of taste.

    • I use Caddy, which is very modern, simple to configure, and automatically handles letsencrypt cert setup out of the box.
    • Nginx is almost as modern, more flexible/powerful, IMO less beginner-friendly to setup, and has letsencrypt automation but not out of the box. Nginx is probably most common these days.
    • I know less about traefik, I feel like that’s most often employed as a kubernetes ingress… but maybe people use it for other stuff and I just haven’t encountered it. I do feel like outside of k8s, it’s MUCH less common than nginx.
    • Good ole apache is great if you know how to use it. It’s a bit archaic to configure compared to nginx or caddyz and though it is supremely capable, I do not recommend it unless you’re already steeped in its ways.

    There’s a hundred other options as well, but it’s really just preference for a toy setup like ours. I’ve used many of these things and prefer Caddy for my homelab stuff cause it’s dreamily simple to configure. If I wasn’t using Caddy, I’d be using nginx just because it’s so commonly used that you can find help/instructions for anything you can imagine.

      • smegger@kbin.social
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        I’ve found npm to be fairly easy to setup. But I’m not far from your situation, trying out various options to see what works best for me

        • hispeedzintarwebz@kbin.socialOP
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          That’s pretty much where I am. This isn’t my day job, it’s something I mess with for fun and so I’d like to make it easy not just to set up but to expand if necessary, and easy enough that if I don’t touch it for a year and come back to it I won’t be completely clueless!

          • beto@kbin.social
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            If you don’t have any special needs, NPM is a good way to go. Even if you do, some flexibility is available in UI advanced options and directly modifying the config if you have the nginx knowledge (although I’d advocate not to do it, if possible).

            There’s a docker-compose file for it, so it should adjust to your setup too.

  • knaak@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    1 year ago

    I use NPM which is also a docker image and has automatic let’s encrypt and a nice interface. Nginx Proxy Manager.