iowap-server
IOWAP Relay Server — API, Scheduler, Auth, Dashboard, Metrics
The relay server is the central coordinator in the IOWAP ecosystem. Nodes register their capabilities via heartbeat, and the relay matches tasks to capable nodes. It is a purpose-agnostic scheduler — it knows nothing about the work itself, only who can do what.
Features
- Capability Registry — nodes heartbeat their capabilities, relay maintains a live registry
- Task Scheduler — match tasks to capable nodes, claim/release lifecycle with retry
- Auth & Security — token-based node auth, CSRF-protected dashboard, TLS support
- Dashboard — web UI for node overview, task monitoring, capability browsing, metrics
- SSE Events — real-time event stream for connected nodes
- Status System — node/task/stage status registry with valid transitions
- Event Bus — publish/subscribe internal events for monitoring & extensibility
- PostgreSQL + SQLite — production (Postgres) and dev (SQLite) backends
- Docker —
docker compose upfor one-command deployment - Observability —
/metrics(Prometheus),/readyhealth checks, structured JSON logs
Quick Start (Linux)
curl -fsSL https://raw.githubusercontent.com/iowap-org/iowap-server/main/install.sh | bash
The installer asks native (systemd) vs. Docker (GHCR image), configures the database (SQLite default, PostgreSQL local/remote) and environment (homelab HTTP / internet TLS), creates the master admin seed, and prints the dashboard login URL.
Docker (manual) — pre-built image on GHCR:
docker volume create relay-data
docker run -d --name iowap-server --restart unless-stopped \
-p 8788:8788 \
-e RELAY_MASTER_SEED="$(openssl rand -hex 24)" \
-e RELAY_SESSION_SECRET="$(openssl rand -base64 32)" \
-e RELAY_SESSION_COOKIE_SECURE=false \
-v relay-data:/app/.relay \
ghcr.io/iowap-org/iowap-server:latest
Compose files live in iowap-org/iowap-docker (server/docker-compose.yml).
Manual (source):
git clone --recursive https://github.com/iowap-org/iowap-server.git
cd iowap-server
pip install -e . # or: pip install -e ".[postgres]"
relay-server --host 0.0.0.0 --port 8788
Server starts on http://localhost:8788 — the dashboard login is under
/relay/v2/dashboard/login (master seed acts as the bootstrap admin until the
first human admin exists).
Configuration
| Env | Default | Description |
|---|---|---|
RELAY_PORT |
8788 | Server listen port |
RELAY_DB_TYPE |
sqlite | Database backend (sqlite / postgres) |
RELAY_MASTER_SEED |
— | Deterministic master seed for token generation |
TLS_CERTFILE |
— | TLS cert path (enables HTTPS, disables mDNS) |
POSTGRES_* |
— | PostgreSQL connection (when RELAY_DB_TYPE=postgres) |
See iowap-docs → server/setup.md for full reference.
Architecture
┌──────────┐ heartbeat + capabilities ┌───────────┐
│ Nodes │ ◄─────────────────────────► │ Relay │
│ (any) │ claim + complete tasks │ Server │
└──────────┘ └─────┬─────┘
│
┌───────┴───────┐
│ Dashboard │
│ (HTMX/HTML) │
└───────────────┘
Docs
Full documentation in iowap-org/iowap-docs:
- getting-started.md — first steps
- server/setup.md — full setup guide
- server/docker.md — Docker deployment
- reference/api.md — API reference
- server/dashboard.md — dashboard usage
- server/admin.md — administration
License
MIT — see LICENSE.
Metadata
Release files for iowap-server 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iowap_server-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Release files / iowap_server-2.0.0-py3-none-any.whl
| Download URL | iowap_server-2.0.0-py3-none-any.whl |
|---|---|
| Size | 299.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9c04d37198bf43063b1e84c7675a5202e2701a9a6a335f8a4e3f622848058f6c
|
|
BLAKE2b-256 checksum How to use checksums |
0517cbee4d93e941fd0bb2e14cb6df4ab17fdce256eb483d529b9d58baaa0667
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|