Starts containers and other workloads on demand when requests arrive and stops them after a period of inactivity, working with reverse proxies.
jittering/traefik-kop
A discovery agent that reads Docker container labels on remote hosts and publishes them to Redis so a single Traefik instance can route to services across multiple Docker nodes.
- Stars
- 526
- Forks
- 29
- Open issues
- 1
- Last commit
- 25 days ago
What is it?
traefik-kop is a discovery agent for running a multi-host Docker cluster without Swarm or Kubernetes behind one public-facing Traefik instance. Each worker node runs traefik-kop, which reads container labels from its local Docker daemon using the same logic as Traefik's Docker provider and publishes the resulting routing configuration to a shared Redis instance. The main Traefik node is configured with a Redis provider pointing at that same Redis, so it picks up routes for services on every node.
The agent handles the details that make cross-host routing work. It replaces container-internal IPs with a reachable bind IP, set by flag, environment variable, interface, or per-service label, and derives service ports from published host ports. It supports namespaces to target subsets of containers, load balancer merging across nodes, Redis TTL-based expiry with periodic renewal, Redis Sentinel, and TLS with optional mutual authentication. Docker events are watched in real time, with a configurable polling fallback.
Key features
- 01Publishes Traefik Docker-provider routing config from each node to a shared Redis.
- 02Selects bind IPs via label, flag, network interface, or auto-detection.
- 03Filters containers with namespaces, including comma-separated multiple namespaces.
- 04Merges load balancer entries for services running on multiple nodes.
- 05Supports Redis TTL expiry, Redis Sentinel, and TLS with mutual authentication.
Use cases
- Serving several standalone Docker hosts through one public Traefik entry point without Swarm or Kubernetes.
- Running separate Traefik and traefik-kop instances side by side using label prefixes.
- Keeping a Redis-backed routing table that expires stale entries when a node disappears.
Quick start
- 1
Configure your Traefik node to use the Redis provider (traefik.yml)
- 2
Run traefik-kop on each other Docker node with docker-compose, setting REDIS_ADDR and BIND_IP
- 3
Add the traefik labels and a port binding to your target service
Things to know
- Requires a running Redis instance that both Traefik and traefik-kop can reach.
- Connects to Docker only through a unix socket; SSH and HTTP(S) Docker connections are not supported.
- Load balancer merging is off by default and can leave dead IPs in place if a node's IP changes.
In collections
Topics
FAQ
- What is traefik-kop?
- A discovery agent that reads Docker container labels on remote hosts and publishes them to Redis so a single Traefik instance can route to services across multiple Docker nodes. traefik-kop is a discovery agent for running a multi-host Docker cluster without Swarm or Kubernetes behind one public-facing Traefik instance. Each worker node runs traefik-kop, which reads container labels from its local Docker daemon using the same logic as Traefik's Docker provider and publishes the resulting routing configuration to a shared Redis instance. The main Traefik node is configured with a Redis provider pointing at that same Redis, so it picks up routes for services on every node.
- Is traefik-kop free to use? What license does it have?
- traefik-kop is open source under the MIT license. Check the license terms before using it in commercial products.
- Is traefik-kop still maintained?
- Actively maintained. The last commit to traefik-kop was on Oct 13, 2026.
- What can I use traefik-kop for?
- Serving several standalone Docker hosts through one public Traefik entry point without Swarm or Kubernetes. Running separate Traefik and traefik-kop instances side by side using label prefixes. Keeping a Redis-backed routing table that expires stale entries when a node disappears.
- How do I install traefik-kop?
- Configure your Traefik node to use the Redis provider (traefik.yml) Run traefik-kop on each other Docker node with docker-compose, setting REDIS_ADDR and BIND_IP Add the traefik labels and a port binding to your target service
- Where can I get traefik-kop?
- The source code and installation instructions are on GitHub: https://github.com/jittering/traefik-kop
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A self-hosted web UI for managing Traefik reverse proxy routes, middlewares, services, certificates and logs without hand-editing YAML.
Automated Docker and Docker Compose setup tool for homelabs, with 160+ pre-configured self-hosted apps and built-in reverse proxy and authentication options.
A modern, dynamic dashboard that auto-discovers and displays services routed through Traefik.
A cloud native HTTP reverse proxy and load balancer that auto-configures routes from Docker, Kubernetes, Consul and other orchestrators.
Docker-based Nginx reverse proxy that automatically generates routing configs from running containers' VIRTUAL_HOST variables.