Problem

The official Twingate Docker image for a headless client is fairly barebones - it doesn't support tty/shell access or custom health checks. The default inner health check was insufficient for verifying actual connectivity in sidecar container use cases such as monitoring tools like Uptime Kuma and Gatus, where confirming that the Twingate tunnel was genuinely passing traffic was essential for reliable service health reporting.

Approach

Built a custom Docker container that accepts service keys as environment variables, auto-configures on startup, and includes a pluggable health check framework. Added bash, curl, netcat, and IP utilities to enable interactive debugging and custom connectivity tests. Published to GitHub Container Registry (GHCR) with automated monthly builds via GitHub Actions so the image stays current with upstream Twingate client releases without manual intervention.

Outcome

Forked by Twingate's official Solutions org at github.com/Twingate-Solutions, which adopted it as the basis for their own custom connector tooling. Used by customers running monitoring and internal tooling alongside Twingate access, where environment-variable-based key injection and reliable health checks are prerequisites for container orchestration workflows.

Tech Stack

Docker Bash GitHub Actions GHCR