What to use for Ingress with Electric Eel/After TC Deprecation

That appears to be the case, but needs to be confirmed.

1 Like

How about:

I prefer caddy myself for various reasons. But it can use labels also.

1 Like

Cool. Did not know that.

But Caddy does not have a fancy dashboard like NPM and Traefik right?

Not that I am aware of, but it’s super simple.

Here’s the config for photoprism, without labels (so the hard way, lol)

photoprism.mydomain.tld {
	reverse_proxy photoprism-ix-chart.ix-photoprism.svc.cluster.local:2342
}

Note, not saying there’s anything wrong with traefik. Just prefer choices., at least as long as there is no embedded choice made for us. There’s a lot of caddy users out there.

I’ve been evaluating ingress options :wink:

Funny, because I actually use HAProxy at the network boundary :wink:

My current belief is that Caddy is simple but not pretty, and does not provide dns acme certs

NPM is simple, but not scalable, with no compose labels support

Traefik is pretty and relatively complex and probably the best choice if you want to have the config coded in the compose, which makes them portable and scalable, whilst having a dash and acme dns certs

Nginx and haproxy are the highest perf.

Haproxy is not really suitable as no good docker compose integration (but it could be)

What do you mean does not provide acme certs? Caddy? That’s one of the uses of it. Automatic TLS provisioning even with Acme DNS challenges. I am using porkbun DNS challenges with it. You can even use it to render html pages too.

Not pretty, I suppose, but it’s super fast and simple. I am not trying to compare caddy to anything else. Just saying it’s extremely popular, esp with docker people.

I am fine with whatever IX ends up using, I’ll just convert to it when they do so automatically or in the UI. But until then, love caddy.

My mistake. I thought it only supported HTTP challenge, what with originally just being a simple web server written in Go.

It seems to have grown up a lot since I last tried it.

1 Like

There was a caddy v1 at one point, this is v2, been out for a while. So, that may be true, not sure of the history. I required DNS provisioning as I have CGNAT and no ipv6.

You can get metrics from it, and thusly use grafana, prometheus, etc.

1 Like

I have to say, when SCALE will be ironed out it will be a fine piece of code. Ruined by Linux maybe, but a fine piece of code.

1 Like

Right, but you need to compile in the appropriate DNS plugin. Unless something’s changed since I last checked, the published Docker images don’t include any of those DNS plugins.

2 Likes

So? The problem is what? You guys seem to have some problem with caddy for some reason, perhaps a hurd mentality due to Truecharts. Like you want to dislike it. Next you’ll say but it doesn’t support some obscure dns provider. You don’t have to use DNS provisioning, perhaps you purchased a certificate and you want to use it (say a wildcard cert). Or, maybe you want a self signed cert. You can use a HTTP challenge. It can do on demand. There are many ways to use it. For me, I simply build the image, one command. It’s a one time effort and not much of one.

I like it better than Traefik, which I am not sitting here pointing out every little defect / annoyance with. Just for fun, I"ll add a few, Traefik is more complicated to setup and overall, and very hard to solve issues with, caddy is so simple to use. For a more noob user coming in, caddy is much more likely to be useable to them until such a time as Truenas bakes in the functionality into scale. Caddy has higher performance according to many (but not all) benchmarks. My statement was I prefer it and like a choice, you don’t, fine. I have my reasons, you have yours. It’s an option for the OP.

2 Likes

Not in the least; I like Caddy plenty and use it whenever I can. That’s why it’s the webserver for my Nextcloud script, my Heimdall script, and a good many of Victor’s scripts. But if DNS plugins need to be compiled in (and they do), and the available Docker image doesn’t have them (which I don’t believe it does, but I’m not certain of that), then that’s going to be relevant in deciding whether to use Caddy in this application. Maybe there’s a way around that–maybe a different Docker image that includes all available DNS plugins, for example.

Yes, it is–an option I mentioned (and recommended) in my first post in this topic. I don’t know why you’re responding this way to my post, but you’re off-base.

2 Likes

Ok, then I am, sorry about that, it’s a bad day for me. It’s not specifically your post, but the seemingly endless list of things it doesn’t do, but actually does. It is useful for nextcloud for sure.

I use Linuxserver’s SWAG container that has nginx doing reverse proxy work. They have plumbing in place that links in with docker.socket to automate subdomains, including certificate handling, based on the container names.

But currently I side-step all that because of kubernetes.

1 Like

What people need to understand is that in the “app” ecosystem you cannot change an iX or community provided container image after the fact. If a feature is not there you cannot ssh in like with a jail and pkg install xyz .... You need to open a feature request and hope whatever you desire gets added.

Of course you know that. But it needs pointing out occasionally and I think that was @dan’s point.

Which is true when using the apps system. Unless you count custom apps, which require no jail or extra work. They work basically just like docker command line. I now have 24 apps, all custom apps. I can change anything I want, set any limits I want, include what I want, add features as I want, etc. Which of course is true of jails as well. But once compose lands, there’s a lot more flexibility compared to the built in apps as they are now.

Have you tried using the custom app function to add Traefik?
SCALE allows adding an app that is not in the catalog using this function.

Go to Apps > Discover Apps then click Custom App at the top right corner to open the configuration screen. Look it over to see what you need to provide then you can exit that screen. You can get your configuration information together and then access this screen again to give it a try.