mrkeyoor.com_
Sat 17 Oct 13:34 UTC
Self-Hostedevaluationupdated 26 Aug 2026

godoxy review

GoDoxy is a reverse proxy and container-routing dashboard for self-hosters, with English documentation and a Traditional Chinese README. It discovers Docker or Podman services, assigns routes, manages certificates and access rules, and can stop or wake idle containers and Proxmox LXCs.

+1stars / 7d
Verdict

Our GoDoxy run built in 77 seconds, but Go test finished with 42 of 49 packages failing at linker references. Its Docker discovery, idle wake-up, and Proxmox controls are a strong homelab combination, especially for one operator who accepts host networking. Pin v0.31.0 or newer with its required Go toolchain, test upgrades on a spare proxy, and do not replace a working gateway until the full suite passes in your build environment.

We ran it

Lab card: what happened when we ran godoxyScreenshot of godoxy (docs.godoxy.dev)
Install✓ · 112s0 packages
Build✓ · 77s
Tests✗ · 73s7 passed · 42 failed of 49 (go test)
Repo1842 files~185,062 lines of source · 12.3 MB · 8 CI workflows · Dockerfile

Answers from our run

Does godoxy build from source?

Dependencies installed in 112 seconds (0 packages), and the build succeeded in 77 seconds. We cloned commit 6f52e6a into a clean Debian container with 3 CPUs and no project-specific setup.

Do godoxy's tests pass?

No. The project's own test command finished in 73 seconds and reported 7 passed, 42 failed (go test).

Who should not use godoxy?

Environments that forbid host networking: the quick start explicitly says GoDoxy is designed for host network mode.

What are the alternatives to godoxy?

Traefik, Caddy, Nginx Proxy Manager. Our GoDoxy run built in 77 seconds, but Go test finished with 42 of 49 packages failing at linker references.

Setup3/5Compose quick start is clear, but DNS and host networking are required
Docs4/5English and Chinese guides cover routes, middleware, DNS, and Proxmox
Community4/54,115 stars with August 2026 releases and issue work
Maturity3/5v0.31.0 is active, but our full Go suite failed broadly

Who it’s for

Self-hosters who want automatic routes from Docker labels plus a Web UI.
Homelabs that need HTTP proxying, TCP or UDP forwarding, DNS-01 certificates, and OIDC.
Proxmox users who want route binding, LXC lifecycle controls, logs, and idle wake-up.
Operators comfortable giving one service host networking and visibility into container runtimes.

Who it’s NOT for

Environments that forbid host networking: the quick start explicitly says GoDoxy is designed for host network mode.
Teams needing TLS passthrough by SNI: issue #218 was closed without adding the requested setup.
Operators with older Docker daemons who cannot upgrade: issue #237 describes compatibility trouble after the compat image was discontinued.
Buyers who require a green source suite on the measured commit: our run had 42 failed Go packages out of 49.

Setup reality

Our sandbox completed dependency installation in 112 seconds and the build in 77 seconds. Go test ran for 73 seconds and reported 7 passed packages and 42 failed out of 49. The log tail shows invalid linker references to net/http/internal/http2.errStreamClosed and time.unitMap.

Normal deployment needs wildcard DNS, host networking, Docker Compose, route and environment files, and certificate-provider credentials when using DNS-01. OIDC, MaxMind rules, remote Docker nodes, and Proxmox each add secrets and network access.

The repository has a Dockerfile and 8 CI workflows. Release v0.31.0 says source builds require Go 1.27, while our supplied sandbox used Go 1.24. The build passed there, but the complete test command did not.

Container discovery replaces most manual proxy hosts

GoDoxy watches Docker and Podman, reads container names, labels, and exposed ports, then creates routes when the metadata matches. A proxy.aliases label becomes the subdomain, with the Compose container name as the default. Route files cover services that are not described by labels. Hot reload lets container or configuration changes update the proxy without rebuilding a static list by hand.

The Web UI manages routes, configuration, containers, logs, metrics, and uptime. That is the main reason to choose GoDoxy over a small Caddy file. It also increases the proxy's authority: access to the container runtime and management actions can affect much more than HTTP routing. Put the administrative hostname behind strong authentication, restrict its network reach, and avoid exposing runtime sockets beyond the service that needs them.

Host networking and wildcard DNS are design requirements

The quick start begins with wildcard A or AAAA records pointing at the GoDoxy host. It explicitly says to run in host network mode and change listening ports through the environment file. The setup script generates Compose and configuration files, after which the Web UI is expected at a godoxy subdomain. This is a short path when you control DNS and the host.

It is a poor fit for platforms that forbid host networking or hide the container runtime. DNS-01 certificates need credentials for a supported provider, and release v0.31.0 adds Infomaniak while updating the ACME library. The release warns that multiple certificate providers should use matching resolver lists because the underlying library applies resolvers process-wide. Certificate renewal deserves a staging test before the proxy owns every service.

What happened when we ran it

Our fresh container installed Go dependencies in 112 seconds and built commit 6f52e6a in 77 seconds. The checkout contained 1,842 files, about 185,062 source lines, and 12.3 MB. It included 8 CI workflow files and a Dockerfile, while the repository did not have a top-level tests directory. Go packages can keep tests beside source, so that directory signal is not a test count.

The complete Go test command exited with code 1 after 73 seconds. It reported 7 passed packages and 42 failed out of 49. The final log showed build failures in serialization, types, and watcher packages, including invalid references from github.com/yusing/goutils/http to net/http/internal/http2.errStreamClosed and from serialization to time.unitMap. We do not have evidence in the supplied log to assign a deeper cause.

Our sandbox used Go 1.24 with 3 CPUs, 8 GB of RAM, no secrets, and no privileged access. Release v0.31.0 now states that source builds require Go 1.27. The measured build still succeeded on the supplied image, while the test suite did not. A current source build should follow the release's newer requirement, use the documented shadowtree commands, and verify all packages before producing an image.

Idle sleep can save resources and surprise users

GoDoxy can stop idle Docker containers or Proxmox LXCs and wake them when traffic arrives. For a homelab service used a few times per week, this can cut memory and CPU use without maintaining separate schedules. The proxy must remain available, recognize the request, start the target, and hold or retry traffic until the application responds. Startup time becomes user-visible latency.

Health monitoring controls that decision, so label semantics matter. Open issue #256 says proxy.exclude: true removes a route while health monitoring continues unless another wildcard health-check label is set. The request proposes one full opt-out label. Until behavior changes, audit excluded containers explicitly. An operator may reasonably assume 'exclude' means GoDoxy leaves the container alone, and that assumption is currently unsafe.

Proxmox control makes this more than a reverse proxy

GoDoxy can bind routes to Proxmox nodes or LXCs by matching hostnames, addresses, and aliases. The Web UI can start, stop, or restart containers and stream node or LXC logs through WebSockets. Multi-node Docker support serves a similar need for services spread across hosts. These features suit a lab where the proxy is already the central directory for applications.

Remote control adds failure modes. Issue #233 described repeated EOF errors, route loss, and high CPU with many remote Docker providers over mutual TLS in v0.29.x; it was closed in August 2026. Release v0.31.0 includes several fixes for Docker and Proxmox stream record boundaries. Reproduce your node count and connection type during an upgrade, then confirm routes survive provider disconnects.

Access rules cover common homelab needs, with limits

HTTP routes can use OpenID Connect, ForwardAuth, custom middleware, IP or CIDR rules, and country or timezone rules backed by a MaxMind account. TCP and UDP forwarding cover services outside HTTP. Custom error pages, access logs, and periodic summaries round out routine administration. This is a useful set for private dashboards and shared household services.

The proxy is not a general TLS passthrough switch. Issue #218 requested SNI-based proxying so separate sites could retain their own wildcard certificates behind one port 443 listener; the request was closed in August without that feature appearing in the README. Choose Traefik, Caddy, or another layer when passthrough is central. Do not design around a closed request as if it were promised work.

v0.31.0 is active and changes build assumptions

GitHub listed 4,115 stars and 10 combined issues and pull requests when fetched. The last push was August 25, 2026, four days after v0.31.0. That release fixes OIDC session recovery, icon handling, stream records, configuration drafts, and Docker health fallback. It also moves source builds to Go 1.27 and removes configurable Sonic JSON support.

Those breaking notes make version pinning important even in a homelab. Keep Compose, environment, routes, certificate state, and provider files in a backed-up directory. Test the new image against a secondary hostname, inspect authentication and WebSocket routes, then move traffic. GoDoxy earns a trial for its unusual mix of proxy automation and infrastructure controls, but the failed measured suite argues for more care than the short setup script suggests.

Alternatives

ProjectWhat it isPick it when
Traefik gh↗A dynamic reverse proxy with broad provider discovery and middleware support.pick this instead when ecosystem depth, orchestrator integrations, and established production use matter most.
Caddy gh↗A configuration-driven web server and reverse proxy with automatic HTTPS.pick this instead when you want a smaller proxy core and can manage routes without GoDoxy's container dashboard.
Nginx Proxy Manager gh↗A browser-managed Nginx proxy for hosts, certificates, and access lists.pick this instead when manual GUI-managed proxy hosts are enough and automatic container discovery is unnecessary.

What people are saying

  1. [github-trending] yusing/godoxy

Sources

  1. GoDoxy README
  2. GoDoxy v0.31.0 release
  3. Issue 256: full container opt-out
  4. Issue 233: remote Docker provider failures
  5. Issue 218: SNI proxy and TLS passthrough
  6. Issue 237: older Docker compatibility

More self-hosted reviews

playport · edge-smart-doh · Comma · ProsperoEden · zulu · node_exporter · the whole board →