Deployment Guide
Production deployment options for Docker, Kubernetes, and air-gapped environments.
Prerequisites
| Requirement | Details |
|---|---|
| Server/VM | Minimum 8 vCPU, 32 GB RAM, 100 GB storage |
| OS | Ubuntu 22.04+, RHEL 9+, Windows Server 2022+ |
| Network | Internal network only — no outbound internet required |
| Certificates | TLS cert for HTTPS; optional mTLS for API auth |
| Storage | Writable directory for data and logs |
Docker
The recommended deployment method for single-server environments.
Basic
docker run -d \
--name fowyldai \
--gpus all \
-p 8000:8000 \
-v /opt/fowyldai/data:/app/data \
-v /opt/fowyldai/config:/app/config \
fowyldai/engine:latest
Docker Compose
version: "3.8"
services:
fowyldai:
image: fowyldai/engine:latest
container_name: fowyldai
restart: unless-stopped
ports:
- "8000:8000"
volumes:
- ./data:/app/data
- ./config:/app/config
- ./logs:/app/logs
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
environment:
- FOWYLD_LOG_LEVEL=info
- FOWYLD_DATA_DIR=/app/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
TLS termination
docker run -d \
--name fowyldai \
--gpus all \
-p 443:8000 \
-v /opt/fowyldai/data:/app/data \
-v /opt/certs:/app/certs:ro \
-e FOWYLD_TLS_CERT=/app/certs/cert.pem \
-e FOWYLD_TLS_KEY=/app/certs/key.pem \
fowyldai/engine:latest
Kubernetes
For multi-node, high-availability deployments.
Deployment manifest
apiVersion: apps/v1
kind: Deployment
metadata:
name: fowyldai
labels:
app: fowyldai
spec:
replicas: 2
selector:
matchLabels:
app: fowyldai
template:
metadata:
labels:
app: fowyldai
spec:
containers:
- name: engine
image: fowyldai/engine:latest
ports:
- containerPort: 8000
resources:
requests:
memory: "16Gi"
cpu: "4"
nvidia.com/gpu: "1"
limits:
memory: "32Gi"
cpu: "8"
nvidia.com/gpu: "1"
volumeMounts:
- name: data
mountPath: /app/data
- name: config
mountPath: /app/config
livenessProbe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 60
periodSeconds: 30
readinessProbe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 30
periodSeconds: 10
volumes:
- name: data
persistentVolumeClaim:
claimName: fowyldai-data
- name: config
configMap:
name: fowyldai-config
---
apiVersion: v1
kind: Service
metadata:
name: fowyldai
spec:
selector:
app: fowyldai
ports:
- port: 8000
targetPort: 8000
type: ClusterIP
GPU scheduling
Ensure the NVIDIA device plugin is installed in your cluster. Nodes must have GPU drivers and
nvidia-container-toolkit installed.
Air-Gap Deployment
FowyldAI is built for environments with zero internet access. No external calls are made at any point — models, config, and updates are delivered via sealed packages.
Step 1: Download the bundle (on a connected machine)
# Download sealed deployment package
curl -O https://releases.fowyld.ai/bundles/fowyldai-1.4.0-airgap.tar.gz
# Verify integrity
sha256sum -c fowyldai-1.4.0-airgap.tar.gz.sha256
Step 2: Transfer to air-gapped environment
# Via USB, secure file transfer, or approved media
# Bundle includes: container image, models, config templates
Step 3: Load and run
# Load the container image
docker load -i fowyldai-engine-1.4.0.tar
# Extract config and models
tar xzf fowyldai-models-1.4.0.tar.gz -C /opt/fowyldai/
# Start
docker run -d \
--name fowyldai \
--gpus all \
--network none \
-p 8000:8000 \
-v /opt/fowyldai/data:/app/data \
-v /opt/fowyldai/models:/app/models \
fowyldai/engine:1.4.0
Note the --network none flag
This enforces zero network access at the Docker level — an additional layer of sovereignty enforcement beyond the engine's built-in network guard.
Verification
After any deployment method, verify the engine is operational:
# Health check
curl http://localhost:8000/health
# Sovereignty verification
curl http://localhost:8000/sovereignty/status
# Test query
curl -X POST http://localhost:8000/ask \
-H "Content-Type: application/json" \
-d '{"query": "Verify deployment is working"}'