Deploy the Network Appliance
The SmartPoints network appliance (spt-appliance) packages the full protocol stack into a deployable service. This guide covers Docker Compose for local development and Helm for AKS production deployments.
What the Appliance Includes
The appliance runs as a single binary that provides:
- QUIC transport endpoint (Layer 2)
- SmartPoint pair management (Layer 3)
- Scope governance engine (Layer 4)
- Marketplace services: discovery, retention, metering (Layer 5)
- Identity chain (AIC) node
- Telemetry pipeline (OTLP, Splunk, webhooks)
- Admin API for configuration and monitoring
Docker Compose Quickstart
Prerequisites
- Docker 24+
- Docker Compose v2
Create the Compose File
Create a docker-compose.yml:
yaml
version: "3.9"
services:
appliance:
image: ghcr.io/smartpointstech/spt-appliance:latest
ports:
- "4433:4433/udp" # QUIC transport
- "8080:8080" # Admin API
- "9090:9090" # Telemetry (OTLP)
environment:
SPT_NODE_DID: "did:said:1:sw:blake3_localdev"
SPT_ADMIN_TOKEN: "${SPT_ADMIN_TOKEN}"
SPT_LOG_LEVEL: "info"
SPT_TELEMETRY_ENABLED: "true"
volumes:
- appliance-data:/data
restart: unless-stopped
volumes:
appliance-data:Start the Appliance
bash
export SPT_ADMIN_TOKEN=$(openssl rand -hex 32)
docker compose up -dVerify
bash
# Check health
curl http://localhost:8080/health
# View node info
curl -H "Authorization: Bearer $SPT_ADMIN_TOKEN" http://localhost:8080/api/v1/nodeStop
bash
docker compose downHelm Chart on AKS
For production deployment on Azure Kubernetes Service.
Prerequisites
- Azure CLI (
az) - Helm 3.x
kubectlconfigured for your AKS cluster
Add the Helm Repository
bash
helm repo add smartpoints https://smartpointstech.github.io/charts
helm repo updateCreate a Values File
Create values.yaml:
yaml
replicaCount: 3
image:
repository: ghcr.io/smartpointstech/spt-appliance
tag: latest
service:
type: LoadBalancer
quicPort: 4433
adminPort: 8080
telemetryPort: 9090
config:
logLevel: info
telemetryEnabled: true
discoveryEnabled: true
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 2000m
memory: 2Gi
persistence:
enabled: true
size: 10Gi
storageClass: managed-premium
ingress:
enabled: true
className: nginx
hosts:
- host: appliance.smartpoints.tech
paths:
- path: /
pathType: Prefix
tls:
enabled: true
secretName: appliance-tlsDeploy
bash
# Create namespace
kubectl create namespace spt
# Create admin token secret
kubectl create secret generic spt-admin-token \
--from-literal=token=$(openssl rand -hex 32) \
-n spt
# Install the chart
helm install spt-appliance smartpoints/spt-appliance \
-f values.yaml \
-n sptVerify the Deployment
bash
# Check pods
kubectl get pods -n spt
# Check service
kubectl get svc -n spt
# View logs
kubectl logs -l app=spt-appliance -n spt --tail=50Upgrade
bash
helm upgrade spt-appliance smartpoints/spt-appliance \
-f values.yaml \
-n sptUninstall
bash
helm uninstall spt-appliance -n sptAdmin Panel
The admin API is available at http://<host>:8080 (Docker Compose) or through the ingress (AKS).
Endpoints
| Endpoint | Method | Description |
|---|---|---|
/health | GET | Health check (no auth) |
/api/v1/node | GET | Node DID, uptime, version |
/api/v1/scopes | GET | List managed Scopes |
/api/v1/pairs | GET | List active SmartPoint pairs |
/api/v1/discovery/services | GET | List registered services |
/api/v1/retention/contracts | GET | List active retention contracts |
/api/v1/aic/vertices | GET | Recent identity chain vertices |
/api/v1/telemetry/stats | GET | Telemetry pipeline statistics |
All /api/v1/* endpoints require the Authorization: Bearer <token> header.
Example: List Active Pairs
bash
curl -H "Authorization: Bearer $SPT_ADMIN_TOKEN" \
http://localhost:8080/api/v1/pairsExample: View Identity Chain
bash
curl -H "Authorization: Bearer $SPT_ADMIN_TOKEN" \
http://localhost:8080/api/v1/aic/vertices?limit=10Configuration Reference
All configuration can be set via environment variables:
| Variable | Default | Description |
|---|---|---|
SPT_NODE_DID | (generated) | The node's DID identity |
SPT_ADMIN_TOKEN | (required) | Bearer token for admin API |
SPT_LOG_LEVEL | info | Log verbosity: trace, debug, info, warn, error |
SPT_QUIC_PORT | 4433 | QUIC transport listen port |
SPT_ADMIN_PORT | 8080 | Admin API listen port |
SPT_TELEMETRY_ENABLED | false | Enable OTLP telemetry export |
SPT_TELEMETRY_PORT | 9090 | Telemetry listen port |
SPT_DISCOVERY_ENABLED | true | Enable DHT service discovery |
SPT_DATA_DIR | /data | Persistent data directory |
SPT_CRYPTO_SUITE | pq-v1 | Default crypto suite for new pairs |
Next Steps
- Architecture Overview -- understand what the appliance runs
- Security Model -- trust boundaries and crypto suites
- Marketplace -- discovery and retention lifecycle