Tag: Infrastructure
-

Introducing Caddy Consul Plugin
Turning Consul Into Your Ingress Brain: Introducing Caddy + Consul
Modern infrastructure has a persistent problem: service discovery and ingress rarely speak the same language. You end up stitching together tools like Fabio, Envoy, or custom glue just to get traffic routed correctly.
What if your ingress layer could directly understand your service registry?
That’s exactly what Caddy + Consul delivers.
A Smarter Ingress Layer
At its core, the plugin transforms Caddy into a dynamic, service-aware ingress controller, powered entirely by HashiCorp Consul.
Instead of static configs or periodic polling, it continuously watches Consul’s catalog and health data using blocking queries — meaning:
- No manual config updates
- No reloads
- No lag between deploy and availability
Traffic routing becomes a real-time reflection of your infrastructure state.
Replace Fabio — Without Losing Compatibility
If you’ve used Fabio before, this will feel familiar — but more powerful.
- Supports
urlprefix-tags for drop-in migration - Maintains tag-driven routing semantics
- Adds richer capabilities like weighted routing and path handling
You can migrate gradually, not rewrite everything overnight.
Unified HTTP and TCP/TLS Routing
Most ingress solutions split responsibilities. This doesn’t.
With one system, you get:
- HTTP routing: host-based, path-based, wildcard domains
- TCP/TLS routing: port-based, SNI-based, TLS passthrough
- Layer 4 support via extensions like caddy-l4
This means one ingress layer for everything — web apps, APIs, and raw TCP services.
Health-Aware by Design
Routing isn’t just dynamic — it’s correct.
Only healthy services receive traffic, based on Consul’s health checks. That eliminates a whole class of failures where traffic hits dead or degraded instances.
Built for Consul Connect
If you’re using Consul Connect, the plugin integrates directly with sidecar proxies:
- Honors service mesh intentions
- Routes through secure sidecar paths
- Works alongside your existing mesh model
This bridges the gap between service mesh and ingress, without duplicating complexity.
Zero-Restart Configuration
One of the standout features: no restarts required.
All routing updates are applied live via Caddy’s admin API. That means:
- Instant propagation of new services
- No downtime during deploys
- No config reload race conditions
Conflict-Aware Routing
Dynamic systems can get messy — this one doesn’t.
- Static config always wins
- Duplicate routes resolve deterministically (“first seen wins”)
This gives you predictability without sacrificing flexibility.
Designed for Real Infrastructure
This isn’t just a plugin — it’s an architectural shift:
- Your infrastructure becomes self-describing and self-routing
- Consul becomes the source of truth
- Caddy becomes the execution layer
The Big Idea
Instead of maintaining ingress separately from your services, this approach flips the model:
Your services define the network.
Register a service in Consul, tag it appropriately, and it’s instantly routable — HTTP, TCP, TLS, all included.
Final Thoughts
If you’re running Caddy and Nomad + Consul, this plugin removes an entire layer of operational overhead.
No more syncing configs.
No more ingress drift.
No more restarts.Just declare your services — and let the network configure itself.
Next Steps
We continue to work hard to bring you the best value for all of your WordPress hosting needs. If you have any questions, concerns, or would generally like to chat, feel free to contact us anytime. We want to make sure you get the most out of HonestHosting.io!
- App Login: https://app.honesthosting.io/login
- Step-by-step Documentation: https://docs.honesthosting.io
- Live Chat & Discord Community: https://discord.gg/H5mWqsktj6
- Personalized Help: https://cal.com/kmott/hh-intro