Quick Start With Local Deployment
Datasance PoT v3.8.0 is a greenfield release. There is no in-place upgrade from v3.7 field deployments.
You need a new Controller database, Edgelet v1.0.0+ on every node, and potctl v3.8.0. Legacy Java iofog-agent and v3.7 field agents are not supported on Controller v3.8.
See Migrating to v3.8.0 for the step-by-step guide.
This guide deploys a minimal local ECN on one machine:
- LocalControlPlane with embedded OIDC
- A system Edgelet node on the same host (via
spec.systemAgent) - A pointer to deploy sample workloads (Acme Smart Plant Tutorial)
You do not deploy a separate LocalAgent. The system Edgelet is part of the Control Plane YAML. See Control Plane YAML Specification.
Version pins
| Component | Version |
|---|---|
| potctl | v3.8.0 |
| Controller | v3.8.0 |
| Edgelet | v1.0.0 |
| EdgeOps Console | v1.0.9 |
Pair Edgelet v1.0.0 with Controller v3.8.0. Do not run v3.7 agents against a v3.8 Controller.
Choose your platform
| Platform | Container engine | containerEngineUrl | Typical deploymentType |
|---|---|---|---|
| macOS / Windows | docker | unix:///var/run/docker.sock | container |
| Linux | edgelet | unix:///run/edgelet/containerd.sock | native |
Use the manifest and prerequisites for your OS below. Both paths produce the same local ECN: Controller, Router, and system Edgelet on one host.
PoT v3.8.0 uses embedded OIDC by default. You do not need Keycloak or an external IdP for this quick start.
We keep this guide short. For CLI design and workflows, see potctl introduction.
macOS and Windows
Prerequisites
- Docker v26.0+ running (Docker Desktop)
- potctl v3.8.0 - see Download and install potctl
On Windows, use Docker Desktop with Linux containers (WSL2 or Hyper-V backend). Run potctl from an environment that can reach the Docker socket (WSL2 is recommended).
Manifest
Save as quick-start.yaml:
---
apiVersion: datasance.com/v3
kind: LocalControlPlane
metadata:
name: ecn
spec:
iofogUser:
name: Quick
surname: Start
password: QuickStartUser12!
controller:
publicUrl: http://<your-host-ip>:51121
consoleUrl: http://<your-host-ip>
package:
image: ghcr.io/datasance/controller:v3.8.0
auth:
mode: embedded
insecureAllowHttp: true
bootstrap:
username: admin
password: QuickStart12!
nats:
enabled: true
systemAgent:
package:
container:
image: ghcr.io/datasance/edgelet:1.0.0
config:
arch: amd64
deploymentType: container
containerEngine: docker
containerEngineUrl: unix:///var/run/docker.sock
Deploy
potctl deploy -f quick-start.yaml
Continue with Verify the deployment.
Linux
Prerequisites
- Linux (amd64, arm64, or another supported arch)
- potctl v3.8.0 - see Download and install potctl
- sudo access on the host (potctl installs Edgelet and starts
edgelet.serviceduring deploy)
Docker is not required on this path. The system Edgelet uses the embedded edgelet engine and containerd socket.
Manifest
Save as quick-start.yaml:
---
apiVersion: datasance.com/v3
kind: LocalControlPlane
metadata:
name: ecn
spec:
iofogUser:
name: Quick
surname: Start
password: QuickStartUser12!
controller:
publicUrl: http://<your-host-ip>:51121
consoleUrl: http://<your-host-ip>
package:
image: ghcr.io/datasance/controller:v3.8.0
auth:
mode: embedded
insecureAllowHttp: true
bootstrap:
username: admin
password: QuickStart12!
nats:
enabled: true
systemAgent:
package:
version: 1.0.0
config:
arch: amd64
deploymentType: native
containerEngine: edgelet
containerEngineUrl: unix:///run/edgelet/containerd.sock
Set systemAgent.config.arch to match your CPU (arm64, riscv64, or arm on 32-bit ARM hosts).
Deploy
potctl deploy -f quick-start.yaml
Continue with Verify the deployment.
Verify the deployment
Check potctl resources:
potctl get all
Expected output (fields may vary):
NAMESPACE
default
CONTROLLER STATUS AGE UPTIME ADDR PORT
ecn online 22m29s 22m35s 0.0.0.0 51121
AGENT STATUS AGE UPTIME ADDR VERSION
ecn RUNNING 22m7s 22m7s 192.168.1.10 1.0.0
APPLICATION STATUS MICROSERVICES
MICROSERVICE STATUS AGENT ROUTES VOLUMES PORTS
VOLUME SOURCE DESTINATION PERMISSIONS AGENTS
ROUTE SOURCE MSVC DEST MSVC
The Controller row is the control plane API. The Agent row named ecn is the system Edgelet node from spec.systemAgent (same name as metadata.name).
Note: Edgelet node status may show UNKNOWN for up to 30 seconds while the node reports liveness to the Controller.
macOS / Windows: Docker containers
On the Docker path, Controller, Router, and Edgelet workloads run as containers:
docker ps
Example output:
CONTAINER ID IMAGE COMMAND STATUS PORTS NAMES
71927882293f ghcr.io/datasance/router:3.8.0 "/qpid-dispatch/laun…" Up 15 minutes 0.0.0.0:5671->5671/tcp ...
8454ca70755b ghcr.io/datasance/edgelet:1.0.0 "edgelet daemon" Up 15 minutes ...
dc7568ad1708 ghcr.io/datasance/controller:3.8.0 "node /usr/local/lib…" Up 16 minutes 0.0.0.0:51121->51121/tcp, 0.0.0.0:8008->8008/tcp ...
Linux: Edgelet service
On the native Linux path, confirm Edgelet is running:
edgelet system status
Or:
systemctl status edgelet
List system microservices (Controller, Router) deployed through Edgelet:
edgelet ms ls
See Edgelet introduction and Control Plane YAML for field details.
Sign in to EdgeOps Console
Open http://<your-host-ip> in a browser, or run potctl view. Sign in with bootstrap user admin and password QuickStart12!, or reigstered ìofogUser: [email protected] and password QuickStartUser12! . See Embedded OIDC for MFA and CLI login.
Deploy sample workloads
This quick start stops after the Control Plane and system Edgelet node are running. To deploy applications and microservices on your local ECN:
- Acme Smart Plant Tutorial - end-to-end plant demo (recommended next step)
- Developing microservices - write your own workloads
- Application YAML reference - deploy from YAML with
potctl
Teardown
Remove the local ECN and any deployed microservices:
potctl delete all
Next steps
- Platform Deployment - remote hosts, Kubernetes, air-gap, and production auth
- PoT Architecture - how Controller, Router, NATS, Edgelet, and EdgeOps Console fit together
- Acme Smart Plant Tutorial - full demo topology