Skip to content

Software Inventory

Fairwave's software is split into repo paths (one repository, multiple components) with a clean boundary: control plane, agent, CLI, UI, portal, and the containerized core/RAN stack.

Inventory

Path Component Language What it does
core/fairwave-control/ fairwave-control Go identity, enrollment, reconcile loop, REST API v1, southbound drivers
core/fairwave-agent/ fairwave-agent Go hardware probes, heartbeat, watchdog, safe-TX flag
apps/fairwave-cli/ fairwave-cli Go operator commands against /v1
apps/fairwave-ui/ Operator UI web (local-first) dashboard: coverage, UEs, backhaul, peering, lab toggle
apps/captive-portal/ Captive portal web onboarding for Wi-Fi calling / non-cellular devices
core/open5gs/ Open5GS stack containers EPC: MME/SGW/PGW/HSS/PCRF
core/ran/ srsRAN stack containers eNB (and srsUE for lab)
deploy/ Docker Compose + ops - single-command lab stack, v0.1 default (compose, helm, ansible, terraform)
docs/ documentation markdown this site
design/ design docs markdown roadmap, threat model, spectrum matrix
mkdocs.yml site config - docs rendering

Control Plane Dependencies

  • Go (component language decision: docs/adr/0003-control-plane-language.md)
  • Open5GS containers managed via southbound driver (config templating + reload)
  • srsRAN eNB containers supervised via southbound driver
  • Prometheus client library for /metrics; zerolog for structured logs
  • OTLP exporter: stubbed, not wired (docs/architecture/telemetry.md)

Container Images

Image Source Tag policy
fairwave/control built from core/fairwave-control/ per release (v0.1.0…)
fairwave/agent built from core/fairwave-agent/ per release
fairwave/ui built from apps/fairwave-ui/ per release
fairwave/portal built from apps/captive-portal/ per release
open5gs:dev pinned Open5GS build pinned, hash-pinned in compose
srsran:dev pinned srsRAN build pinned, hash-pinned in compose

Build Matrix

Platform OS Arch Builds
CI (all PRs) Linux amd64 control, agent, cli, ui, portal
CI (nightly) Linux arm64 same, cross-compiled
Release Linux amd64 + arm64 binaries + images + compose bundle
Golden image Debian 12 amd64 + arm64 image playbook (docs/hardware/image.md)

Release v0.1.0 ships the lab stack (zmq, no RF). M-milestones gate RF features (design/roadmap.md).

  • Control plane: docs/software/fairwave-control.md
  • Agent: docs/software/fairwave-agent.md
  • CLI: docs/software/fairwave-cli.md
  • UI: docs/software/operator-ui.md
  • Portal: docs/software/captive-portal.md