Traefik really shines when you have an orchestrator like k8s/nomad automatically driving its config via labels.
Selfhosted
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:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
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.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
I sugget using Caddy. It's insanely easy, handles SSL so you don't need Let's Encrypt (it uses LE under the hood), has a reverse_proxy command that is 1-3 lines. I dabbled with Apache2 for a time, and I can say switching to Caddy was the best decision.
I now have a DNS server, syncthing, nextcloud, grafana and a few more stuff all behind reverse proxy, SSL handled by caddy. Some of them point to file servers for different paths (i.e. stuff.example.com/admin goes to a website and stuff.example.com goes to the service) and the configuration is less than 5 lines.
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.
I went with nginx proxy manager.
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.
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
NPM is great! I even use it in a production environment at work for a small service and it works beautifully
Awesome, thanks! That's 2 votes for NPM so far
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
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!
Here's a 3rd to convince you even more, I have it running on several instances.
Thanks!
I use NPM which is also a docker image and has automatic let's encrypt and a nice interface. Nginx Proxy Manager.
Awesome, thanks for the reply. (My first reply on my first Kbin post, I'll add!)
I'll look into NPM