Meet DockRouterYour containers. A hostname. A clear path to HTTPS.InstallationRun a Docker container or build one native Go binary.Labels & discoveryKeep routing close to the application it belongs to.Automatic TLSA secure first connection, with a little less certificate administration.Load balancingChoose the right path through your replicas.Security at the edgeExplicit access decisions. Private administration. Trusted proxy boundaries.Dashboard & metricsFollow routes, certificates and requests from the same router.Inside the routerOne process, from incoming connection to container backend.Configuration referenceGlobal environment variables and service-level middleware labels.
Documentation, without the detour.ESC to close
Browse documentation
DOCUMENTATION / START HERE

Installation

Run a Docker container or build one native Go binary.

Run with Docker

Publish the ingress ports, mount the Docker socket and retain the data volume. Attach the router to the same Docker network as your application containers.

terminal
docker run -d --name dockrouter \
  --restart unless-stopped \
  -p 80:80 -p 443:443 \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  -v dockrouter-data:/data \
  -e DR_ACME_EMAIL=you@example.com \
  dockrouter/dockrouter:latest

This example keeps the admin listener private. If you publish port 9090, deliberately configure DR_ADMIN_BIND and admin credentials first.

Build from source

The upstream project documents Go 1.22 or later. The router uses the Go standard library without third-party Go packages.

terminal
git clone https://github.com/DockRouter/dockrouter.git
cd dockrouter
go build -o dockrouter ./cmd/dockrouter
./dockrouter --acme-email=you@example.com

Prebuilt releases

Release v1.2.0 provides Linux and macOS tar.gz archives and Windows zip archives for amd64 and arm64. Match the file to your host and verify it against checksums.txt from the same release. Docker deployments require a reachable Docker daemon, including when using a native binary.

Keep certificate state

The default data directory is /data. Mount it on persistent storage so account and certificate data remain available across container replacements. Use DR_DATA_DIR to choose another location.