Requirements and sizing
Memory, CPU, disk and GPU per package, the hypervisors CID222 runs on, and what the installer's own resource check enforces.
- Version: 0.4
- Role: admin_user
CID222 ships as one virtual appliance and one build. The licence file, not the image, decides which package you run, so sizing is a question about the host, not about the tier you bought. This page gives the numbers to allocate before you import anything.
The problem
Undersizing is the most common cause of a failed evaluation, and it does not fail where you are
looking. Every container pulls and starts, the dashboard comes up, and an hour later services are
killed one at a time as memory runs out — the console reports 2/10 running with no explanation.
The installer's own comments say exactly this, which is why it now checks memory and disk before
it downloads anything.
One build, three packages
Starter, Professional and Enterprise are strict supersets of one another. There is only one
release image; the .lic file you upload unlocks the package you purchased, so moving up a package
is a licence re-issue, never a reinstall.
| Package | What it adds |
|---|---|
| Starter | The core detection gateway: chat and proxy traffic, PII, toxicity, jailbreak and injection detection, image OCR, document analysis, redaction, the browser extension, ICAP and inline-proxy inspection, compliance, governance, endpoint-agent fleet administration, and token cost reporting. |
| Professional | Everything in Starter, plus the read-only MCP server and prompt compression (token cost reduction). |
| Enterprise | Everything in Professional, plus Code Safety, detailed risk analysis, the LLM Risk Analyst and SIEM export. |
The exact feature key each tier grants, and what a missing key switches off, is generated from the code in licence tiers and feature keys. Treat that table as authoritative: the package comparison printed in the customer install guide predates several core keys and does not list compliance, governance or endpoint-agent administration at all, although the code grants them to every tier.
Note
Entitlements resolve as the union of the keys named in the licence and the keys of its tier, so a capability added to your tier after your licence was signed activates without a re-issue.
Hardware per package
Every package runs the same container stack, so the supported minimum is the same for all three. What changes with the package is the recommended sizing.
| Starter | Professional | Enterprise | |
|---|---|---|---|
| RAM — supported minimum | 32 GB | 32 GB | 32 GB |
| RAM — recommended | 48 GB | 64 GB | 64 GB or more |
| vCPU | 8 | 8–16 | 16 or more |
| Disk | 100 GB | 150 GB | 200 GB or more |
| GPU | Recommended for document, OCR and image-heavy workloads | Same | Same, and Code Safety runs on a separate auditor host, which is the one GPU-bound component |
The basis for the 32 GB floor is measurable rather than conventional. The 19 services that start without a compose profile declare 37.6 GB of memory limits between them, six of those services declare no limit at all — so that total is a floor rather than a ceiling — and the full stack was measured running at around 30 GiB. A host with less than roughly 32 GB free after its own overhead cannot run this appliance.
The shipped OVA is pre-sized at 32 GB RAM and 8 vCPU — the supported minimum — so it powers on correctly with no operator arithmetic. Raise it to your package's recommended profile before the first power-on.
Per-service memory limits and published ports are generated from the compose file in services, ports and profiles.
What the GPU buys, and what it does not
A GPU is recommended, never required. It matters only for document, OCR and image-heavy work: PaddleOCR on an NVIDIA card is roughly 3 to 8 times faster per image, and the highest-accuracy OCR engine runs only on a GPU. Text-only evaluation — PII, toxicity, jailbreak and prompt injection — needs no GPU. Hallucination detection and detailed risk analysis are CPU-only builds.
Host prerequisites, when you do add one: Linux, an NVIDIA GPU with driver 530 or later, and the NVIDIA Container Toolkit.
Warning
The appliance image does not ship the GPU overlay. GPU acceleration is a compose overlay in the source deployment; adding it to an appliance is not a supported operation at 0.4. A GPU for a customer's own self-hosted model is a separate question and is not part of this sizing.
Hypervisors
The appliance is delivered as a single .ova file, or as an installer ISO for bare metal and for a
virtual machine you build yourself.
| Hypervisor | Delivery | Status |
|---|---|---|
| VMware vSphere / ESXi | OVA | Lab-verified. The shipped OVA carries a vmx-14 descriptor, SATA AHCI storage, an E1000 adapter and the "VM Network" port group, so the import wizard maps it without operator input. |
| Proxmox VE | OVA | Verified as a platform — CID222's own development deployment runs as a guest on a Proxmox host. Proxmox imports the OVF from the command line rather than from its web interface. |
| VMware Workstation / Fusion, VirtualBox | OVA | Supported for evaluation. Set the adapter to NAT so the guest gets DHCP. |
| Microsoft Hyper-V | Converted disk, on request | Hyper-V cannot import an OVA. Tell your CID222 contact in advance and you receive a converted disk instead. |
| QEMU / KVM with libvirt | OVA or ISO | Supported. The packaged disk is boot-tested under QEMU on virtio, SATA AHCI, LSI SCSI and VMware pvscsi controllers before any OVA ships. |
| Bare metal | ISO | Supported. The installer lays down Ubuntu 24.04 and provisions the appliance. |
Warning
The VMware and Proxmox procedures are verified against real deployments. The Hyper-V and generic KVM/libvirt pages are written from vendor documentation and have not been reproduced in our lab — each carries that statement at the top. Treat their step-level detail as a starting point and confirm the finished virtual machine against the verification section of the page.
The appliance also reports which platform it believes it is running on, in its diagnostics snapshot. That detection is reliable for VMware and Hyper-V and unreliable for Proxmox, which does not identify itself to a guest — see Install on Proxmox VE.
Firmware and boot
The OVF descriptor sets no EFI flag, so a host importing the OVA defaults to BIOS firmware, which is how the image is built and verified. The installer ISO carries both the BIOS and the UEFI boot images of its Ubuntu base and boots either way; its menu offers a UEFI firmware settings entry only when it was itself started in UEFI mode.
Browser
The dashboard is a React single-page application served over HTTPS.
- Serve it over HTTPS. The dashboard sends a
Content-Security-Policy: upgrade-insecure-requestsheader, so a browser opening an appliance by plain HTTP upgrades every asset request to HTTPS. On an ISO-installed appliance, which is HTTPS-only, that works; on a deployment with no HTTPS listener the page renders blank rather than erroring. - Trust the appliance certificate. A first-boot appliance serves a self-signed certificate and the browser shows a one-time warning. The browser extension and Claude Code refuse an untrusted certificate outright rather than warning.
Warning
No minimum browser version is declared anywhere in the product. Chrome, Edge, Firefox and Safari are all used against the dashboard in the field, but the supported set has not been fixed and nothing in the build pins one. If a browser version matters to your rollout, agree it with your CID222 contact rather than inferring it from this page.
What the first-boot check actually enforces
An appliance installed from the ISO checks memory and free disk on tty1 before it downloads a single image, and again on every retry boot. The thresholds are in the first-boot script:
| Condition | What happens |
|---|---|
| Less than 6 GB of RAM | The run stops with a message naming the memory it found. Power off, raise the memory, boot again. |
Less than 20 GB free on / | The run stops. The release images need about 40 GB. |
| Less than about 15 GB of RAM | The run continues with a warning that services will be evicted under load. |
Less than 45 GB free on / | The run continues with a warning. |
Warning
These thresholds do not enforce the supported minimum, and their wording still names the earlier 16 GB / 60 GB design values. A machine with 16 GB of RAM passes the check with a warning and then fails later as containers are killed for memory. Size to 32 GB regardless of what the installer lets through.
The same first-boot pass also nudges time synchronisation before it contacts the registry, because a wrong clock makes a valid certificate look invalid and the resulting error reads like a network fault.
Limits and known gaps
- The installer's resource check is weaker than the supported minimum. It fails at 6 GB and warns at about 15 GB, against a documented floor of 32 GB. It catches the machine that cannot work at all, not the machine that will disappoint you.
- Memory limits are declared for some services and not others. Six services in the default profile declare no limit, so the declared total is a floor rather than a ceiling, and a host running out of memory is not diagnosable from the compose file alone. Older CID222 documents quote about 42 GB of declared limits; the figure generated from the current compose file is 37.6 GB, and that generated figure is the one to trust.
- A GPU cannot be added to a shipped appliance. The GPU paths exist only in the source compose overlays, which the appliance image does not carry.
- Cloud model providers still require egress. The detection pipeline runs entirely locally, but the Anthropic and Google provider clients dial their vendor cloud with no configurable base URL. An air-gapped appliance therefore reaches a self-hosted or LAN model, or no model at all — see Network prerequisites.
- Capacity per user is not published. No throughput or concurrent-user figure has been measured on customer hardware, so the sizing above is a floor for the stack, not a capacity model for your population.
Related tasks
- Network prerequisites — the ports, egress and name resolution to agree with the network team before the virtual machine exists.
- Install on a hypervisor — import the OVA with the right sizing, disk and adapter.
- Install from the ISO — bare metal, or a virtual machine you build yourself.
Last updated on