Show HN: Millau – self-configuring ingress proxy for Docker Swarm

4 codelev 0 5/26/2025, 9:15:03 PM github.com ↗
I still use Docker Swarm. It's simple, fast to set up, and easy to teach. But I got tired of managing routing to microservices. Nginx and HAProxy need config redeploys, Traefik is powerful, but its configuration via labels quickly becomes unmaintainable.

So I built Millau — a free ingress proxy and load balancer for Docker Swarm microservices. Add a few labels to the service, and traffic gets routed. No proxy restarts, no config files. Example: ``` # service deploy: labels: - "millau.enabled=true" - "millau.port=9000" ```

Millau listens to Docker events, discovers labeled services, and routes traffic using host and path matching. Unlike Traefik, Millau supports load balancing across services. I use it to deploy different versions e.g. Blue, Green, Red of the same microservice. If Red crashes, Millau routes to Blue or Green. If Blue slows down, Millau marks it inactive for 60s and routes to Green.

Millau supports TLS termination and mTLS. It exposes Prometheus metrics and ships with a prebuilt Grafana dashboard. It's in production, serving its own site and several side projects.

Let me know what you think, especially if you're still using Docker ecosystem in prod. Thanks.

Comments (0)

No comments yet