https://github.com/mizuchilabs/tetherd
The lightweight agent for the Tether ecosystem.
https://github.com/mizuchilabs/tetherd
agent automation golang monitoring traefik
Last synced: 27 days ago
JSON representation
The lightweight agent for the Tether ecosystem.
- Host: GitHub
- URL: https://github.com/mizuchilabs/tetherd
- Owner: MizuchiLabs
- License: apache-2.0
- Created: 2026-04-20T20:27:07.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-06-05T13:53:56.000Z (about 1 month ago)
- Last Synced: 2026-06-05T14:16:33.691Z (about 1 month ago)
- Topics: agent, automation, golang, monitoring, traefik
- Language: Go
- Homepage:
- Size: 112 KB
- Stars: 4
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Tetherd
**Tetherd** is the lightweight agent that runs on your worker servers. It watches your Docker containers and tells the central [Tether](https://github.com/MizuchiLabs/tether) server where they are so Traefik can find them.
## How it Works
1. You run Tetherd on every server where you have Docker containers.
2. Tetherd looks at your containers' labels (like `traefik.http.routers.myapp.rule`).
3. It automatically detects the server's IP address.
4. It sends this information to your central **Tether** server.
This allows a single Traefik instance on a different machine to route traffic to these containers seamlessly.
## Quick Start
Run Tetherd on your worker server:
```yaml
services:
tetherd:
image: ghcr.io/mizuchilabs/tetherd:latest
network_mode: host # Highly recommended for IP detection
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- TETHERD_SERVER=http://:3000
- TETHERD_TOKEN=your-secret-password
restart: unless-stopped
```
## Deploying an App
When you deploy an app on this worker server, just add standard Traefik labels. Tetherd handles the rest:
```yaml
services:
my-app:
image: nginx
ports:
- "8080:80"
labels:
- "traefik.enable=true"
- "traefik.http.routers.my-app.rule=Host(`my-app.com`)"
```
Tetherd will tell the central server: _"Send traffic for `my-app.com` to `http://:8080`"_.
## Configuration
| Env Var | Flag | Default | Description |
| --------------------- | ------------ | ----------------------- | ----------------------------------------------- |
| `TETHERD_SERVER` | `--server` | `http://127.0.0.1:3000` | URL of the central Tether server. |
| `TETHERD_TOKEN` | `--token` | | **Required**: Token matching the Tether server. |
| `TETHERD_HOST_IP` | `--host-ip` | _(auto)_ | Manual override for this server's IP. |
| `TETHERD_ENVIRONMENT` | `--env` | `default` | Group servers into isolated environments. |
| `TETHERD_DEBUG` | `--debug` | `false` | Enable detailed logging. |
---
**Requirement:** You need a [Tether](https://github.com/MizuchiLabs/tether) server running to collect these updates.
## License
Apache 2.0 License - see [LICENSE](LICENSE) for details