mirror of
https://github.com/yusing/godoxy.git
synced 2026-01-11 14:20:32 +01:00
Feature request: Support Docker provider over TLS (HTTPS / mTLS) #125
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @henryxrl on GitHub (Dec 18, 2025).
Hi, first of all, thank you for GoDoxy — it’s a very well-designed project and the agent-based model makes a lot of sense for multi-host environments.
I’d like to request (or at least discuss) support for connecting the Docker provider over TLS (HTTPS / mTLS).
Use case
In my homelab / internal infrastructure, I already expose the Docker API securely using mTLS, for example:
This is done via a Docker socket proxy + reverse proxy (Caddy), and is already used by other tooling in my stack.
From a security and operational standpoint:
However, when using GoDoxy’s Docker provider, the connection appears to assume plain HTTP only. When pointing it to an HTTPS endpoint, GoDoxy sends a plain HTTP request, resulting in:
This makes it impossible to reuse an existing TLS-secured Docker API endpoint.
Existing implementations
Several popular tools already support Docker API over TLS, including:
Homepage
https://gethomepage.dev/configs/docker/#using-docker-socket-proxy
Dozzle
https://dozzle.dev/guide/remote-hosts
DPanel
https://dpanel.cc/manual/system-env-tcp
For example, Homepage supports configurations like:
This makes it possible to integrate securely with remote Docker hosts without requiring an agent on every machine.
What I’m asking for
Support for Docker provider over TLS, ideally including:
https://Docker API endpointsFor example:
Notes / expectations
I fully understand that:
That said, TLS support for the Docker provider would be very valuable for:
If this is intentionally out of scope, I’d appreciate clarification on whether TLS support is fundamentally incompatible with the current design.
Thanks again for the project and for taking the time to consider this.
@yusing commented on GitHub (Dec 19, 2025):
Hi, first of all thanks for loving this project.
For agents it's already using mTLS, GoDoxy generates certs for each agent, at the moment you click the "Copy Docker Compose" button.
Everything including reverse proxying, health monitoring and data like cpu/memory usage, is throughout mTLS. It provides more than just docker-over-mTLS.
I see your point, many users would prefer full control and manage stuff manually.
Of course it's compatible as mTLS is already being used for agents. It's doable.
@henryxrl commented on GitHub (Dec 19, 2025):
Thanks a lot for the detailed reply — this helps clarify the design a lot.
I fully understand now that:
The issue I’m running into is specifically with the Docker provider (non-agent mode).
In my setup:
However, from testing and reading the code/docs, the GoDoxy Docker provider currently:
“Client sent an HTTP request to an HTTPS server”
So the blocker is not TLS compatibility in general, but that the Docker provider doesn’t expose a TLS/mTLS configuration surface, even though agents already prove it’s doable.
Concretely, something like this (conceptually) would make Docker-over-mTLS possible:
I totally get that agents are the preferred and more powerful solution, but supporting TLS for the Docker provider would be extremely useful for users who:
Happy to help test or provide more details if needed.
@yusing commented on GitHub (Dec 20, 2025):
try
nightlyimage with the following:@henryxrl commented on GitHub (Dec 20, 2025):
Hmm, when I switch to
nightlyimage, I immediately encounter this issue:This happens even with a minimal config that previously worked on stable, e.g.:
From the error, it looks like:
map[string]types.DockerProviderConfigmap[string]string (name → endpoint)So this seems like a partial migration / leftover type assertion in the docker provider path. Any fixes?
@yusing commented on GitHub (Dec 21, 2025):
Pushed a fix, update a try again
@henryxrl commented on GitHub (Dec 22, 2025):
Thanks for the quick update! I'll try it out tomorrow!
@henryxrl commented on GitHub (Dec 22, 2025):
I'm running into this error:
It looks like GoDoxy is still trying to parse the docker provider config using the non-nightly (string-based) docker host logic, even though I’m on nightly.
Here’s exactly what I did:
Switched the image tag from latest to nightly (from
TAG=latesttoTAG=nightlyin.env)Added an extra volume mount:
where
/path/to/caddy-clients's folder structure looks like this:In
config.yml, underproviders, I added a remote docker provider:where
int-srv-mac-mini.internalcorrectly resolves to the Mac mini’s IP.@henryxrl commented on GitHub (Dec 22, 2025):
While we're at it, you might consider changing
protocoltoscheme, which is more consistent with existing proxy labels.@yusing commented on GitHub (Dec 23, 2025):
I've left this feature on a separate branch and the nightly image is now on dev branch so you're running into the error. Below is the build for the fix:
AMD64:
ghcr.io/yusing/godoxy@sha256:49ad97e75caee984b4d66adfe1c14790f337b604de69e150aee1a96838a2b8eaARM64:
ghcr.io/yusing/godoxy@sha256:b91680cb0376b51c1b8f80f14570dd36b07e24c672dcb0d65b3d2e33987e29d2@henryxrl commented on GitHub (Dec 23, 2025):
@yusing Thanks a lot! I’ve tested this in the latest build and it’s working perfectly on my side.
Let me know if you’re planning to ship this in a stable release — and if so, it would be great to have the docs updated as well. Also curious whether
protocolwill stay as-is or be renamed toschemein the final version.@yusing commented on GitHub (Dec 23, 2025):
Great. Will rename it to
schemeand release soon, to be consistent with theschemefield for routes.