8
submitted 1 year ago* (last edited 1 year ago) by hispeedzintarwebz@kbin.social to c/selfhosted@lemmy.world

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?

top 16 comments
sorted by: hot top controversial new old
[-] vividspecter@lemmy.world 4 points 1 year ago* (last edited 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.

I have pertainer served over swag/tailscale and it works fine. Plus one to swag tho, pretty straightforward and easy to setup, good community

[-] PriorProject@lemmy.world 2 points 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.

[-] hispeedzintarwebz@kbin.social 1 points 1 year ago

Thank you! Caddy rings a bell as well - I will add that to the list. My current main site is still behind apache...it took my forever to figure out how to get it working so I've been afraid to touch it. I definitely don't think I want to go down that route again if at all possible.

[-] rimu@kbin.social 1 points 1 year ago

Naaah, Caddy is way simpler than Apache. It'll be much easier. Take a quick look at the docs and you'll see what I mean.

[-] useful_idiot@lemmy.eatsleepcode.ca 2 points 1 year ago* (last edited 1 year ago)

Traefik really shines when you have an orchestrator like k8s/nomad automatically driving its config via labels.

[-] matt@lemmy.piperservers.net 1 points 1 year ago

I have had an issue with updates to Nginx Proxy Manager breaking itself in the past so I switched to Traefik.

NPM is much more user-friendly when it works. However, as mentioned, Traefik integrates directly with docker through labels, making it very convenient if not a bit more of a learning curve.

So far, the only annoyance I have with Traefik is that I haven't found a very easy way to host itself on a separate server from where the containers are running because it uses the docker.sock file to pick up the labels on running containers automatically. Instead, I manually create files for the files provider. I don't think this is an issue if you are using Kubernetes, but I haven't gotten all the way down that road quite yet, as it is a bit overkill for me.

[-] KitchenNo2246@lemmy.world 0 points 1 year ago

NPM is great! I even use it in a production environment at work for a small service and it works beautifully

[-] hispeedzintarwebz@kbin.social 0 points 1 year ago

Awesome, thanks! That's 2 votes for NPM so far

[-] scottmeme@sh.itjust.works 0 points 1 year ago

Here's a 3rd to convince you even more, I have it running on several instances.

[-] chiisana@lemmy.world 0 points 1 year ago* (last edited 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.

[-] hispeedzintarwebz@kbin.social 0 points 1 year ago

Thanks for the suggestion! Does cloudflare essentially fulfill the same role as letsencrypt (with DDOS protection added)? I've heard of cloudflare but I'm not particularly familiar with them.

[-] rimu@kbin.social 1 points 1 year ago

Yes, it can provide a SSL connection to the end-user even though you're just serving http with no cert. However it is yet another moving part that can break or be mis-configured and yet another bunch of capitalists data-mining all the things.

[-] knaak@lemmy.world 0 points 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.

[-] hispeedzintarwebz@kbin.social 1 points 1 year ago

Awesome, thanks for the reply. (My first reply on my first Kbin post, I'll add!)

I'll look into NPM

load more comments
view more: next ›
this post was submitted on 23 Jun 2023
8 points (100.0% liked)

Selfhosted

39251 readers
192 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS