colibri/docs/guide/architecture/deployment-models.md
Sam & Claude 95c487546d
Some checks are pending
CI / rust (pull_request) Waiting to run
CI / markdown (pull_request) Waiting to run
CI / port (pull_request) Waiting to run
CI / agent-jail-pkgs (pull_request) Waiting to run
docs(guide): port 39 procedural docs from clawdie-ai to colibri
New docs/guide/ tree — canonical home for operator-facing procedural docs.
Starlight frontmatter added to all files. 0.12 alignment fixes applied:

- v0.11.0 → v0.12.0 throughout
- PI_TUI_PROVIDER/MODEL → DEEPSEEK_API_KEY
- Headless Codex login → Agent runtime setup (zot + RPC mode)
- /login and auth.json references removed
- pi → zot in provider-fallback spawn reference
- colibri-provider-verify (was pi-provider-smoke)
- Language cleanup: smoke test → verification, fake → test,
  can't self-fix → requires operator intervention,
  broken → unresponsive, Fix anything broken → Verify all checks pass

Two-tree model: docs/wiki/ (decisions) + docs/guide/ (procedural).
Single source of truth in colibri. clawdie-ai docs/public/ to be retired.
2026-06-26 09:16:43 +02:00

2.9 KiB

title
Deployment Models

Clawdie-AI supports two first-class deployment targets. Both run the same core runtime — Bastille jails, PostgreSQL (skills, memory, ops databases), nginx, Telegram channel, rc.d service. The difference is how the host gets set up.


Model 1: Cloud / VPS (current production)

Use when: You want Clawdie running on a remote server you can SSH into.

VPS / cloud host (FreeBSD 15)
  └── Bastille jails
        ├── git            (shared Git Service)
        ├── cms            (shared Web Service)
        ├── ollama/llama   (shared Local AI Models, optional)
        └── db             (optional jail; host by default via DB_RUNTIME=host)

Strapi admin UI is disabled by default; enable it explicitly with CMS_ADMIN_UI=YES.

Setup path:

git clone → just install → configure .env → service {agent} start

See install and the ansible-freebsd skill for the full provisioning sequence.

Characteristics:

  • Headless, SSH/Tailscale access
  • Managed via Ansible playbooks
  • ZFS snapshots via Sanoid for disaster recovery
  • No desktop required

Model 2: Bare-metal ISO

Use when: You want to plug a USB into your own hardware and have a complete Clawdie system in one reboot — desktop included.

USB image
  └── bsdinstall (FreeBSD base + ZFS + bootloader)
  └── first boot provisioning (setup.txt seed, TUI fallback)
        ├── GPU detection → kld_list → Lumina desktop
        └── setup.sh → same jails as Model 1
  └── one reboot → running system

Setup path:

dd if=clawdie-iso-baremetal-DD.mmm.YYYY.img of=/dev/daX → boot → answer wizard → done

See the Clawdie-ISO repo for the full build and release notes: https://codeberg.org/Clawdie/Clawdie-ISO

Characteristics:

  • Lumina desktop (FreeBSD-native, outpaddling/desktop-installer)
  • 1 reboot for common hardware (GPU via pciconf, no intermediate reboot)
  • Local access, no cloud dependency
  • Same Clawdie-AI core as Model 1

Shared core

Everything in this repository is shared between both models:

Component Both models
Agent runtime src/
Jail definitions setup/
Memory pipeline scripts/memory/
Skills .agent/skills/
Onboarding wizard setup/onboarding.ts
Ansible playbooks infra/ansible/

The ISO build lives in a separate Clawdie-ISO repo and calls just install after base OS install — the same entry point used in Model 1.


  • install — Model 1 install orchestrator
  • iso — ISO install path
  • Clawdie-ISO repo: https://codeberg.org/Clawdie/Clawdie-ISO
  • Bastille — jail lifecycle (both models)
  • Warden — ZFS layout (both models)