Infrastructure

Mentat is intended to run on infrastructure you control. The reference setup is deliberately simple: Linux with KVM, attached SSD storage, Terraform-managed provisioning, and enough capacity to run Firecracker, Docker, and platform services on the same private environment.

Reference Host Profile

Machine8 vCPU, 32GB RAM
OSUbuntu 24.04 LTS or equivalent Linux with KVM
CPUx86_64 with VT-x / nested KVM support
Boot Disk150GB SSD
Data Disk512GB SSD
Cluster Shape3 nodes for Raft (1 leader, 2 followers)
NetworkPrivate subnet between nodes

What This Supports

This profile is sized for mixed workloads: isolated services in Firecracker, existing services in Docker, and host-level agents through exec. It is a practical baseline for private infrastructure rather than a hyperscaler-style architecture.

ServiceDriverObserved Status
StreamForge v0.11.4Firecracker3-node Raft cluster verified
OxideStoreFirecrackerS3 API verified with AWS CLI
API ServiceDockerContainerized application runtime with docker-hardened policy
Node AgentExecHost-level platform service

Filesystem Layout

/opt/mentat/bin/
  ├── mt
  ├── mentat-server
  └── mentat-agent

/var/lib/mentat/
  └── state/

/tmp/mentat/
  └── firecracker/

/mnt/unikernel-volumes/
  ├── vector-store/
  ├── oxidestore/
  └── other service volumes

Ports and Access Model

PortServiceAccess
22SSHExternal
4646Mentat APIExternal or VPN
4647Agent APIInternal
80/443IngressExternal

Installed Software

Firecrackerv1.7.0
Docker28.2.2
KVM/dev/kvm available to the runtime user

Provisioning

Terraform is the recommended way to provision and repeat environments. The exact cloud can vary, but the core requirements stay the same: Linux, KVM, attached SSD storage, and private node connectivity.

The control plane architecture is intended to run as a Raft cluster. Even when a given environment is temporarily reduced to one active voter, the operating model, networking, and provisioning should remain aligned with a multi-node topology.

deploy infrastructure
cd Terraform/
terraform init
terraform plan -var="project_id=your-project-id"
terraform apply -var="project_id=your-project-id" -auto-approve

Backups

Persistent data should live on the attached data disk and be protected with regular snapshots. The reference policy keeps daily snapshots with a 7-day retention window.

Build and Publish Binaries

cross-compile and upload
cargo build --release --target x86_64-unknown-linux-musl \
  --bin mt --bin mentat-server --bin mentat-agent

scp target/x86_64-unknown-linux-musl/release/{mt,mentat-server,mentat-agent} \
  user@your-host:/opt/mentat/bin/