From zero to DEFONEOS running in under 5 minutes. Three paths: pip install, Docker, or air-gap deploy.
5 minQuick Install
pip install defoneos-mcp โ run โ connect
3Install Paths
pip, Docker, or air-gap tarball
30Sensor MCPs
Connect any of 30 sensor sources instantly
0External Dependencies
No cloud account needed. Runs on your hardware.
Path 1: pip Install (Development / Evaluation)
1
Install DEFONEOS MCP package
Works on Python 3.10+. Creates the defoneos CLI and MCP server.
pip install defoneos-mcp
2
Initialize the sovereign substrate
Creates ~/.defoneos/ directory structure with default config.
defoneos init
# Creates:
# ~/.defoneos/config.yaml โ Main configuration
# ~/.defoneos/sigil/ โ Ed25519 keypair + chain database
# ~/.defoneos/data/ โ Sovereign data lake (SQLite)
# ~/.defoneos/models/ โ Local model cache (Ollama)
3
Start the DEFONEOS server
Launches the MCP server on localhost:3101 with all 30 sensor tools.
defoneos start --port 3101
# Output:
# ๐ DEFONEOS v1.0 starting...
# โ
SIGIL chain loaded (0 entries)
# โ
30 MCP tools registered
# โ
BFT council initialised (33 nodes, 11 required for quorum)
# โ
Server listening on http://localhost:3101/mcp
4
Verify the installation
Run the built-in smoke test to confirm everything is working.
defoneos verify
# Expected output:
# โ
MCP server responding (HTTP 200)
# โ
SIGIL chain integrity verified
# โ
30/30 tools available
# โ
BFT council quorum reachable
# โ
Sovereign data lake: 0 entries (ready)
# ๐ DEFONEOS is ready.
5
Open the web dashboard
DEFONEOS includes a built-in web UI on port 8080.
open http://localhost:8080
# Dashboard shows:
# - Live sensor feed (30 MCPs)
# - Cesium 3D globe with data overlays
# - BFT council status
# - SIGIL chain explorer
# - System health metrics
Path 2: Docker (Production / Server)
1
Pull the DEFONEOS image
Multi-arch image (amd64 + arm64). UK-built, signed, SBOM included.
docker pull csoai/defoneos:latest
2
Run with docker-compose
The full stack: MCP server + Cesium web + Ollama models + PostgreSQL.
# docker-compose.yml
version: '3.8'
services:
defoneos:
image: csoai/defoneos:latest
ports:
- "3101:3101" # MCP server
- "8080:8080" # Web dashboard
volumes:
- defoneos-data:/data
- defoneos-sigil:/sigil
environment:
- DEFONEOS_MODE=sovereign
- BFT_QUORUM=11
- OLLAMA_HOST=http://ollama:11434
depends_on:
- ollama
ollama:
image: ollama/ollama:latest
volumes:
- ollama-models:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
volumes:
defoneos-data:
defoneos-sigil:
ollama-models:
docker-compose up -d
# Verify:
docker-compose ps
curl http://localhost:3101/mcp # โ HTTP 200
curl http://localhost:8080 # โ Dashboard HTML
Hardware Requirements
| Tier | CPU | RAM | GPU | Storage | Use Case |
| Minimum | 4 cores | 8 GB | None (CPU) | 20 GB | Evaluation, small sensor set |
| Recommended | 8 cores | 32 GB | RTX 4090 / Jetson AGX | 100 GB | Full 30-MCP sensor suite + local models |
| Production | 16+ cores | 64+ GB | A100 / H100 / M4 Ultra | 500+ GB | Multi-user, classified, air-gap |
Path 3: Air-Gap Deploy (Classified / Tactical Edge)
For deployments with zero network connectivity. Everything pre-packaged on physical media.
1
Download the air-gap bundle (on a connected machine)
~8 GB tarball containing: DEFONEOS, all 30 MCPs, Ollama + 4 local models, Cesium assets, full documentation.
# On a connected machine:
defoneos bundle --airgap --output /media/usb/defoneos-airgap.tar.gz
# Bundle includes:
# defoneos-mcp/ โ Core server + 30 MCPs
# ollama/ โ Ollama runtime
# models/ โ 4 GGUF models (~7 GB total)
# โโโ qwen2.5-7b.gguf โ General reasoning
# โโโ deepseek-r1.gguf โ Deep reasoning
# โโโ nomic-embed.gguf โ Embeddings
# โโโ qwen2.5-3b.gguf โ Fast routing
# cesium/ โ 3D globe assets (offline)
# sigil/ โ Ed25519 keypair generator
# docs/ โ Full documentation (offline)
2
Transfer to the air-gapped machine
USB drive (checksum verified) or hardware data diode. Verify SHA-256 before extraction.
# On the air-gapped machine:
sha256sum /media/usb/defoneos-airgap.tar.gz
# Compare with checksum from connected machine
tar xzf /media/usb/defoneos-airgap.tar.gz -C /opt/defoneos
cd /opt/defoneos
3
Generate sovereign keys (offline)
Ed25519 keypair generated on the air-gapped machine. Never touches a network.
./defoneos init --airgap
# Generates:
# /opt/defoneos/sigil/ed25519_priv.pem โ Private key (NEVER leave machine)
# /opt/defoneos/sigil/ed25519_pub.pem โ Public key (share for verification)
# /opt/defoneos/sigil/chain.db โ Empty SIGIL chain (grows locally)
4
Start DEFONEOS in air-gap mode
No network calls. No telemetry. No external API. All inference local.
./defoneos start --airgap --port 3101
# Output:
# ๐ DEFONEOS v1.0 (AIR-GAP MODE)
# โ
Network: DISABLED
# โ
Telemetry: DISABLED
# โ
External APIs: DISABLED
# โ
Ollama models loaded (4 models, 7 GB)
# โ
SIGIL chain: sovereign keys generated
# โ
30 MCP tools available (offline cached data)
# ๐ Air-gap verified. No outbound connections.
Edge Hardware Options
| Device | Power | Compute | Best For |
| Raspberry Pi 5 (8GB) | 5W | CPU only, Qwen 3B | Minimal edge sensor aggregation |
| Jetson Orin Nano (8GB) | 15W | 40 TOPS NPU, YOLOv8 | Forward-edge vision + detection |
| Jetson Orin AGX (64GB) | 60W | 275 TOPS, multi-model | Tactical C2 node, full pipeline |
| MacBook Pro M4 | 30W | 38 TOPS, 36GB unified | Command post, field HQ |
| Ruggedised server (Xeon) | 300W+ | Multi-GPU | Fixed-site operations centre |
Connecting Sensor Sources
DEFONEOS uses MCP (Model Context Protocol) to connect sensor data sources. Each MCP is a self-contained data adapter.
# Connect a satellite imagery source:
defoneos sensor add sentinel-hub --api-key YOUR_KEY
# Connect AIS maritime tracking:
defoneos sensor add aisstream --api-key YOUR_KEY
# Connect government open data:
defoneos sensor add data-gov-uk
# Connect an RTSP camera feed:
defoneos sensor add rtsp-camera --url rtsp://192.168.1.100:554/stream
# Connect MQTT IoT bridge:
defoneos sensor add mqtt-bridge --broker tcp://localhost:1883
# List connected sensors:
defoneos sensor list
# NAME STATUS TOOLS LAST_POLL
# sentinel-hub โ
live 6 2s ago
# aisstream โ
live 5 1s ago
# data-gov-uk โ
live 8 5s ago
# rtsp-camera โ
live 6 1s ago
# mqtt-bridge โ
live 8 0s ago
Available Sensor MCPs
| Category | MCPs Available | Auth Required |
| Satellite Imagery | sentinel-hub | API key (free tier) |
| Maritime | aisstream-maritime | API key (free) |
| Government Data | data-gov-uk, os-opendata, ons-statistics, companies-house | None (open data) |
| OSINT | gdelt-news | None |
| Environmental | openaq-air, noaa-weather, uk-met-office, eonet-wildfire | None / API key |
| Seismic | quakeml-seismic | None |
| Video | rtsp-camera | Camera URL |
| IoT | mqtt-bridge | Broker address |
| Defence C2 | freetak-c2 | FreeTAKServer endpoint |
| Drone | px4-drone | PX4 SITL or hardware |
| Vision | yolov8-detect | Local (no auth) |
Configuration Reference
Main config file at ~/.defoneos/config.yaml
# ~/.defoneos/config.yaml
server:
port: 3101
mode: sovereign # sovereign | development | classified
web_port: 8080
bft:
enabled: true
nodes: 33 # Total council nodes
quorum: 11 # Minimum for consensus (1/3 + 1)
timeout_ms: 5000
sigil:
algorithm: ed25519 # Ed25519 (quantum-safe path: ml-dsa-65)
chain_db: ~/.defoneos/sigil/chain.db
auto_emit: true # Emit SIGIL on every action
sensors:
poll_interval_s: 30 # Poll connected sensors every 30s
cache_ttl_m: 5 # Cache responses for 5 minutes
max_retries: 3
models:
router: ollama # Use local Ollama for model routing
default_model: qwen2.5:7b
reasoning_model: deepseek-r1
embedding_model: nomic-embed
fast_model: qwen2.5:3b
data:
lake_path: ~/.defoneos/data/sovereign.db
max_size_gb: 100
auto_clean_days: 90 # Delete raw data after 90 days (keep summaries)
cesium:
enabled: true
ion_token: "" # Optional: Cesium Ion token for premium assets
default_view: [53.8, -1.5, 500000] # Yorkshire, UK, 500km altitude
Environment Variables
| Variable | Default | Description |
| DEFONEOS_MODE | sovereign | sovereign, development, or classified |
| DEFONEOS_PORT | 3101 | MCP server port |
| DEFONEOS_WEB_PORT | 8080 | Web dashboard port |
| BFT_QUORUM | 11 | Minimum council votes for consensus |
| OLLAMA_HOST | localhost:11434 | Ollama API endpoint |
| SIGIL_AUTO_EMIT | true | Emit SIGIL on every system action |
| AIR_GAP | false | Disable all network calls (air-gap mode) |
SIGIL: defoneos-start ยท Quick Start Guide ยท pip / Docker / Air-Gap ยท 30 MCPs ยท CSOAI Ltd (UK 16939677) ยท ๐