A Caddy plugin that automatically configures reverse proxy routing for Docker containers and services using labels.
Caddy Docker Proxy is a plugin for the Caddy web server that enables it to function as a dynamic reverse proxy for Docker containers and services. It automatically generates and updates Caddy configurations by scanning Docker labels, eliminating the need for manual configuration files. This provides zero-downtime reloads and integrates with Caddy's automatic HTTPS for certificate management.
DevOps engineers and developers managing containerized applications in Docker or Docker Swarm environments who need automated, dynamic reverse proxying. It is particularly useful for teams deploying microservices that require automatic TLS and routing based on container metadata.
Developers choose Caddy Docker Proxy because it leverages Docker's native labeling system for configuration, removing the complexity of manual Caddyfile management. Its unique selling point is the seamless, zero-downtime dynamic configuration updates directly from Docker metadata, combined with Caddy's automatic HTTPS, offering a fully container-driven reverse proxy solution.
Caddy as a reverse proxy for Docker
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically generates and updates Caddyfiles by scanning Docker container and service labels, eliminating manual config management and enabling real-time routing updates.
Gracefully reloads Caddy on Docker changes without service interruption, ensuring high availability for dynamic environments.
Seamlessly integrates with Caddy's automatic TLS to issue and renew certificates from Let's Encrypt or ZeroSSL, simplifying SSL setup for containers.
Supports standalone, controller, and server modes for scalable deployments in Docker Swarm or standalone setups, as detailed in the README examples.
Includes Go template functions like `upstreams` to dynamically generate proxy targets based on Docker resource metadata, reducing manual IP management.
Requires mounting the Docker socket, which grants extensive control over the Docker daemon and poses significant security vulnerabilities if compromised.
The label-to-Caddyfile conversion involves intricate rules for ordering, nesting, and isolation, which can be error-prone and difficult to debug without deep Caddy knowledge.
Automatic detection of ingress networks can fail in some scenarios, as noted in issue #207, forcing manual configuration via labels or environment variables.
Windows container support is experimental and less tested, potentially leading to instability, and ARM images have limited availability compared to x86_64.