netgoat vs caddy-docker-proxy
Self-hosted reverse proxies compared
netgoat is a self-hosted reverse proxy with built-in traffic policies, while caddy-docker-proxy turns Docker labels into Caddy configuration. The main difference is that netgoat provides routing and controls directly, whereas caddy-docker-proxy automates Caddy routing around changing Docker workloads.

netgoat: Self-Host a Reverse Proxy and Traffic Policy Agent
NetGoat is a Go-based reverse proxy for routing traffic through local or cloud deployments, with controls for authentication, caching, rate limits, and security rules. It suits operators who want self-hosted traffic management and optional Cloudflare integrations.

caddy-docker-proxy: Route Docker Traffic Through Caddy
caddy-docker-proxy turns Docker labels into Caddy reverse-proxy configuration and updates it as containers or services change. It suits Docker users who want dynamic routing and automatic HTTPS without maintaining site configuration by hand.
| netgoat | caddy-docker-proxy | |
|---|---|---|
| Language | Go | Go |
| License | AGPL-3.0 | MIT |
| Stars | 902 | 4.7k |
| Forks | 49 | 224 |
| Last analyzed | Oct 3, 2026 | Oct 3, 2026 |
Key differences
- netgoat applies policies such as authentication, caching, rate limits, and security rules; caddy-docker-proxy focuses on generating Caddy configuration from Docker labels.
- netgoat accepts local YAML routes and optional control-plane snapshots; caddy-docker-proxy watches Docker containers or services and reloads Caddy when they change.
- netgoat is active alpha software; caddy-docker-proxy offers standalone and controller/server deployment modes for Docker environments.
- netgoat uses the AGPL-3.0 license, while caddy-docker-proxy uses the MIT license.
- Both projects are written in Go; the provided star counts are 902 for netgoat and 4.7k for caddy-docker-proxy.
Choose netgoat if you…
- need self-hosted routing with built-in authentication, caching, rate limits, and security policies.
- want to configure routes locally with YAML or use optional control-plane snapshots.
- plan to use optional Cloudflare Access, DNS, or tunnel integrations.
Choose caddy-docker-proxy if you…
- run Docker and want labels to generate and update Caddy routes automatically.
- need routing for Docker containers or Swarm services, with configurable deployment roles.
- want to retain custom Caddy directives while keeping routes in sync with deployments.
Compare the numbers side by side, or add more projects
This comparison is generated with AI from the OSRepos analyses of both projects. Always check each project's repository and documentation before choosing.