Upstream: eclipse-iofog/Controller · Datasance mirror: Datasance/Controller
Cloud-native control plane for edge fleets. Controller orchestrates Edgelet nodes, microservices, routing, NATS messaging, RBAC, and certificates. v3.8 is a greenfield release: Edgelet only — v3.7 legacy field agents are not supported.
See CONTRIBUTING for the dual-mirror repository model, CI workflow, and per-mirror GitHub Actions variables.
| Artifact | amd64 | arm64 | Notes |
|---|---|---|---|
| Container image | yes | yes | Primary distribution for v3.8 |
| Local dev (Node 24) | yes | yes | npm run start-dev |
Pull a release image from the registry that matches your product line, then run Controller with the API on 51121 and EdgeOps Console on 8008:
docker run -d --name controller \
-p 51121:51121 \
-p 8008:8008 \
ghcr.io/eclipse-iofog/controller:v3.8.0docker run -d --name controller \
-p 51121:51121 \
-p 8008:8008 \
ghcr.io/datasance/controller:v3.8.0Verify the API:
curl -s http://localhost:51121/api/v3/status | headOpen EdgeOps Console at http://localhost:8008. For production, set CONTROLLER_PUBLIC_URL, TLS, and an external database (mysql/postgres) — see Documentation below.
Images publish to ${IMAGE_REGISTRY}/controller on v* tags only; both mirrors build from the same commit SHA. See CONTRIBUTING for CI variables.
Controller v3.8 requires Edgelet v1.0.0-beta.1+ on the same release train. Install Edgelet on each edge node before provisioning:
| Channel | GitHub repo | Container image |
|---|---|---|
| Eclipse (canonical) | eclipse-iofog/edgelet | ghcr.io/eclipse-iofog/edgelet:<tag> |
| Datasance mirror | Datasance/edgelet | ghcr.io/datasance/edgelet:<tag> |
Pin: use an Edgelet release tag that matches your Controller version (e.g. v1.0.0-beta.2 with Controller v3.8.0). Identical builds and tags on both mirrors.
curl -fsSL https://github.com/eclipse-iofog/edgelet/releases/download/v1.0.0-beta.2/install.sh -o install.sh
chmod +x install.sh
sudo ./install.sh --version=v1.0.0-beta.2
edgelet config --a http://<controller-host>:51121/api/v3/
edgelet provision <provisioning-key>curl -fsSL https://github.com/Datasance/edgelet/releases/download/v1.0.0-beta.2/install.sh -o install.sh
chmod +x install.sh
sudo ./install.sh --version=v1.0.0-beta.2
edgelet config --a http://<controller-host>:51121/api/v3/
edgelet provision <provisioning-key>Edgelet docs: eclipse-iofog/edgelet
For production ECN / PoT deployments, use the unified platform CLI for your product line:
| Product | CLI | Documentation |
|---|---|---|
| Eclipse ioFog | iofogctl | Eclipse ioFog docs |
| Datasance PoT | potctl | Datasance docs |
The container and npm package expose the iofog-controller CLI:
iofog-controller <command> <action> [options]
iofog-controller --helpRequires Node.js 24.x (nvm use 24):
npm ci --legacy-peer-deps
npm run dev:embeddedAPI: http://localhost:51121 · Console (embedded or split): set CONSOLE_URL when running EdgeOps Console separately.
| Topic | Doc |
|---|---|
| Architecture | docs/architecture.md |
| RBAC | docs/rbac-reference.md |
| External OIDC | docs/external-oidc-client-setup.md |