Requirements
Before installing Sanctum, make sure your environment meets the following requirements. The platform is designed for Apple Silicon Macs, with a Linux VM handling specific workloads.
Hardware
Section titled “Hardware”Mac Mini (Required)
Section titled “Mac Mini (Required)”The hub node runs on a Mac Mini with Apple Silicon.
| Component | Minimum | Recommended |
|---|---|---|
| Chip | M4 | M4 Pro |
| RAM | 16 GB | 32 GB+ |
| Storage | 256 GB internal | 512 GB+ internal |
| Network | Gigabit Ethernet | Gigabit Ethernet |
External Storage (Optional)
Section titled “External Storage (Optional)”An external drive is useful for offline knowledge bases (Kiwix), media libraries, and backups. Any USB-C or Thunderbolt drive will work. There is no strict performance requirement since these workloads are not latency-sensitive.
Satellite Nodes (Optional)
Section titled “Satellite Nodes (Optional)”For multi-site deployments, satellite nodes can run on any Apple Silicon Mac. An M1 Mac Mini with 16 GB is sufficient for a satellite.
Software
Section titled “Software”Required
Section titled “Required”Install the following before proceeding to the installation guide.
| Software | Version | Install |
|---|---|---|
| macOS | 15 (Sequoia) or later | System update |
| Homebrew | Latest | brew.sh |
| Python | 3.12+ | brew install python |
| Node.js | 22+ | brew install node or via fnm |
| Docker Desktop | Latest | docker.com |
| UTM | Latest | mac.getutm.app or brew install --cask utm |
| Git | Latest | brew install git (or Xcode CLI tools) |
| Software | Version | Notes |
|---|---|---|
| Ubuntu | 24.04 LTS | Installed via UTM |
| Docker | Latest | apt install docker.io |
| Node.js | 22+ | Via NodeSource or fnm |
| SOPS | Latest | apt install sops or from GitHub releases |
| age | Latest | apt install age (for SOPS encryption) |
| SSH | OpenSSH 9+ | Included with Ubuntu |
VM Specifications
Section titled “VM Specifications”When creating the Ubuntu VM in UTM, use these settings:
| Setting | Value |
|---|---|
| Backend | QEMU with Apple Hypervisor |
| CPU cores | 4 (8 recommended) |
| Memory | 8 GB (12 GB recommended) |
| Disk | 64 GB+ |
| Network | Host Only (vmnet) |
| QEMU TSO | Enabled |
The VM will receive a static IP on the 10.10.10.0/24 subnet. The Mac acts as the bridge gateway at 10.10.10.1, and the VM sits at 10.10.10.10.
Optional Components
Section titled “Optional Components”These are not required for a basic installation but enable additional capabilities.
Firewalla Purple
Section titled “Firewalla Purple”A Firewalla Purple in Router mode provides network-level security, DNS management, and device monitoring. Sanctum includes a bridge service that communicates with Firewalla over its P2P API on port 8833.
If you do not have a Firewalla, Sanctum will still function. Network management features will simply be unavailable.
Tailscale
Section titled “Tailscale”Tailscale provides secure mesh networking between nodes. It is required for multi-node deployments (hub + satellite) and strongly recommended for remote access to your hub.
Install Tailscale on each node:
brew install --cask tailscaleCloudflare Domain
Section titled “Cloudflare Domain”A domain managed through Cloudflare enables secure public access to specific services (such as the Home Assistant dashboard or health endpoints) via Cloudflare Tunnel. The free Zero Trust plan is sufficient.
LM Studio
Section titled “LM Studio”LM Studio provides a local inference server for large language models. Sanctum uses it as a primary or fallback model provider. Install it as a standard macOS application and configure it to serve on port 1234.
Network Architecture
Section titled “Network Architecture”Sanctum expects the following network layout:
Internet |Modem / ONT |Firewalla WAN (optional, Router mode) |LAN (192.168.1.0/24) ├── Mac Mini (.10) ── Host Only bridge (10.10.10.0/24) ── Ubuntu VM (.10) ├── Orbi / Wi-Fi AP (.2, AP mode) └── Smart devices, speakers, etc.Verification
Section titled “Verification”Before moving on, confirm you have the required tools installed:
# Check macOS versionsw_vers
# Check Homebrewbrew --version
# Check Pythonpython3 --version
# Check Node.jsnode --version
# Check Dockerdocker --version
# Check UTM is installedls /Applications/UTM.appOnce everything checks out, proceed to Installation.