Skip to content

v1.2.0 — Docker label provider

Choose a tag to compare

@maferick maferick released this 24 Jul 08:16

Derive proxy hosts and TCP/UDP streams from Docker container labels — Traefik's provider idea with a flat label set, no router/service/middleware graph. Opt-in via QG_DOCKER=1 with the daemon socket mounted read-only.

Highlights

  • Flat labels: quicgate.enable, quicgate.host, quicgate.port, quicgate.exclude-ports, quicgate.scheme, quicgate.tls-skip-verify, quicgate.tls, quicgate.access-list, and quicgate.streams.
  • Streams too: quicgate.streams=25565, 2222:22/tcp, 53/udp exposes non-HTTP ports as L4 forwards. Stream ports are auto-excluded from web-port detection, so a container with a web port and a game/DB port needs no manual excludes. Containers can be HTTP-only, streams-only, or both.
  • Reuses named access lists, and QG_DOCKER_DOMAIN derives the hostname from the container name.
  • Connect-mode auto / network / published resolves each upstream address, so it works whether quicgate runs on a bridge network or network_mode: host.
  • Manual hosts always win a naming conflict; derived routes are never persisted (re-derived from live containers).
  • Docker page shows every container with the exact reason it is or isn't routed, plus one-click Convert to host to graduate a container to editable configuration.
  • Read-only stdlib Docker client (list / inspect / events), zero new dependencies.

Opt-in and dormant until enabled, so upgrading changes nothing until you set QG_DOCKER=1 and mount the socket. See the Docker labels docs.