Skip to content

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 -d

Verify

bash
# Check health
curl http://localhost:8080/health

# View node info
curl -H "Authorization: Bearer $SPT_ADMIN_TOKEN" http://localhost:8080/api/v1/node

Stop

bash
docker compose down

Helm Chart on AKS

For production deployment on Azure Kubernetes Service.

Prerequisites

  • Azure CLI (az)
  • Helm 3.x
  • kubectl configured for your AKS cluster

Add the Helm Repository

bash
helm repo add smartpoints https://smartpointstech.github.io/charts
helm repo update

Create 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-tls

Deploy

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 spt

Verify 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=50

Upgrade

bash
helm upgrade spt-appliance smartpoints/spt-appliance \
  -f values.yaml \
  -n spt

Uninstall

bash
helm uninstall spt-appliance -n spt

Admin Panel

The admin API is available at http://<host>:8080 (Docker Compose) or through the ingress (AKS).

Endpoints

EndpointMethodDescription
/healthGETHealth check (no auth)
/api/v1/nodeGETNode DID, uptime, version
/api/v1/scopesGETList managed Scopes
/api/v1/pairsGETList active SmartPoint pairs
/api/v1/discovery/servicesGETList registered services
/api/v1/retention/contractsGETList active retention contracts
/api/v1/aic/verticesGETRecent identity chain vertices
/api/v1/telemetry/statsGETTelemetry 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/pairs

Example: View Identity Chain

bash
curl -H "Authorization: Bearer $SPT_ADMIN_TOKEN" \
  http://localhost:8080/api/v1/aic/vertices?limit=10

Configuration Reference

All configuration can be set via environment variables:

VariableDefaultDescription
SPT_NODE_DID(generated)The node's DID identity
SPT_ADMIN_TOKEN(required)Bearer token for admin API
SPT_LOG_LEVELinfoLog verbosity: trace, debug, info, warn, error
SPT_QUIC_PORT4433QUIC transport listen port
SPT_ADMIN_PORT8080Admin API listen port
SPT_TELEMETRY_ENABLEDfalseEnable OTLP telemetry export
SPT_TELEMETRY_PORT9090Telemetry listen port
SPT_DISCOVERY_ENABLEDtrueEnable DHT service discovery
SPT_DATA_DIR/dataPersistent data directory
SPT_CRYPTO_SUITEpq-v1Default crypto suite for new pairs

Next Steps

Released under the MIT License.