tether

command module
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 9, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

README



GitHub Tag GitHub License GitHub Issues or Pull Requests

Tether

Tether is the central hub for your distributed Traefik setup. It gathers information from all your servers and tells Traefik exactly how to route traffic to your apps.

Think of it as a central operator: multiple servers (running Tetherd) tell Tether which apps are running, and Tether gives Traefik a single, master list of all of them.

Why use Tether?

If you have multiple physical servers or VPS instances but don't want the complexity of Kubernetes or Docker Swarm, Tether is for you.

  • One Public IP: Point your router/firewall (Port 443) to just one server running Traefik.
  • Auto-Discovery: Apps on other servers are automatically found and added to Traefik.
  • Simple: No complex networking, no KV stores (Consul/Redis), just simple HTTP heartbeats.

The "One IP, Many Servers" Setup

Imagine you have 3 servers, but only one public WAN connection.

  1. Server A (The Gateway): Runs Traefik and Tether. Your router forwards port 443 here.
  2. Server B & C (The Workers): Run your apps (Websites, APIs, etc.) and a small agent called Tetherd.

Tetherd on Server B/C tells Tether (on Server A) what is running. Traefik asks Tether for the config and magically knows to send app1.com to Server B and app2.com to Server C.

Quick Start

Run Tether using Docker Compose:

services:
  tether:
    image: ghcr.io/mizuchilabs/tether:latest
    ports:
      - 3000:3000
    environment:
      - TETHER_TOKEN=your-secret-password # Shared with agents
    restart: unless-stopped
Configure Traefik

Tell your Traefik instance to get its routing rules from Tether:

providers:
  http:
    endpoint: "http://tether:3000/config"
    pollInterval: "5s"
    headers:
      Authorization: "Bearer your-secret-password"

Configuration

Env Var Flag Default Description
TETHER_TOKEN --token Strongly recommended: Shared secret for agents to connect.
TETHER_PORT --port 3000 Port Tether listens on.
TETHER_NO_WEB --no-web false Disable serving the web UI.
TETHER_CONFIG --config /data/dynamic.yml Optional local file for manual Traefik rules.
TETHER_DEBUG --debug false Enable detailed logging.

Next Step: Install Tetherd on your other servers to start connecting them!

Screenshot

Dashboard

License

Apache 2.0 License - see LICENSE for details

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
api
Package api contains the API server
Package api contains the API server
config
Package config contains the application configuration
Package config contains the application configuration
state
Package state contains the traefik configuration by environment
Package state contains the traefik configuration by environment
util
Package util contains utility functions
Package util contains utility functions
Package web embeds the web assets
Package web embeds the web assets

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL