lucaslorentz/caddy-docker-proxy

Caddy as a reverse proxy for Docker

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 1 hour ago
Added to GitGenius on September 14th, 2026
Created on June 13th, 2017
Open Issues & Pull Requests: 49 (+0)
GitHub issues: Enabled
Number of forks: 223
Total Stargazers: 4,653 (+0)
Total Subscribers: 28 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 23.4 hours
Mean response time: 74.5 days
90th percentile: 246.5 days
Tracked items: 143

Most active contributors

Sign in to see contributor activity.

How this project is maintained

100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Three people close 70% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 28
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 440 days
Stale 30+ days: 24
Stale 90+ days: 18

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 1
Events in 7 days: 1

Top labels

  • bug (2)
  • enhancement (2)
  • question (1)

Most active issues this week

Detailed Description

Caddy-Docker-Proxy is a reverse proxy plugin that enables Caddy to automatically route traffic to Docker containers based on labels.

The tool solves the problem of manually configuring reverse proxy rules for containerized services. It works by scanning Docker metadata for labels prefixed with "caddy" and converting them into an in-memory Caddyfile with site entries and proxies pointing to each Docker service by DNS name or container IP. Whenever a Docker object changes, the plugin updates the Caddyfile and triggers Caddy to gracefully reload with zero downtime, eliminating the need for manual configuration updates.

This tool suits teams running Docker containers who want automatic HTTPS with Let's Encrypt or ZeroSSL certificates without managing proxy configuration files. It works with both Docker services and individual containers, and supports multiple execution modes including standalone, server, and controller configurations. The label-based approach means developers can define routing rules directly in their Docker Compose files or container definitions using simple key-value pairs, with support for Go templates and template functions like upstreams for dynamic configuration.

The project maintains active build automation and demonstrates consistent responsiveness to issues and pull requests. Development activity shows regular engagement with the codebase and a pattern of addressing user-reported problems promptly. The maintainer actively reviews and merges contributions, indicating an open approach to community involvement. Documentation is comprehensive and regularly updated to reflect changes in functionality and usage patterns.