Customer install manual
Install, watch, preview, prove, roll back, and leave — on Linux you enroll.
Optics helps you see. Gate applies the rules you set. Phantom Engine protects the machines you own. Enterprise adds proof and process on top. Optics is free. Gate is $499/month. Phantom Engine is $799/node/month. Enterprise is talk to sales for optional governance on that same protection.
This path has passed internal rehearsal. External Stranger Host validation remains Open. A company-operated rehearsal is not a pass of the Standard. Phantom-Box is ineligible to attest that walk.
Vantio does not need SSH on your host. If a step is missing from this page or the customer package, that is a product gap — not a reason for an undocumented login. To pick Optics, Gate, Phantom Engine, Enterprise, or the design-partner application, start at /start.
What you are installing
Supported paths only. Phantom Engine Control is enrolled Linux. Named gaps stay named. Do not start soak, httpbin, or any traffic generator to look live. Honest idle is valid.
| You buy | What lands | Price |
|---|---|---|
| Optics | Wrap on the agent process (`vantio run` / SDK) | Free |
| Gate (hosted) | Rules on the wrap. Start a Gate trial via hello@vantio.ai. Stripe checkout is not live yet. | $499/month after trial |
| Phantom Engine | Control on Linux you enroll, plus Gate-on-prem. Do not stack hosted Gate $499 on this quote. | $799/node/month |
| Enterprise | Optional governance: durable evidence, audit records, dual-control on that same host protection. | Talk to sales |
What you need
- Linux with sudo for the loader. Windows and macOS Control are not offered.
- Helm 3 if you use Kubernetes. You bring Helm. Chart default is observe-only (`enforce: false`).
- Optics CLI on PATH (`npm i -g @vantio/cli`). Python agents also need `pip install vantio-agent-sdk`.
- A Gate API key on this host (`VANTIO_API_KEY`). Hosted keys come from the trial path. Gate-on-prem uses the key you set locally.
Optics — observe, free
Install the CLI, wrap the process you already run, and confirm an OBSERVED record — or honest idle if the agent never called a supported host. No account required. Prompts and completions stay out.
npm i -g @vantio/cli
vantio run --summary node agent.js
vantio prove --list
vantio provePython: pip install vantio-agent-sdk, then vantio run python agent.py. The prefix alone does not intercept Python. Browser paths stay outside this wrap.
Optics — leave
Stop wrapping the process, then uninstall the CLI or SDK. Honest idle while Optics is installed is valid — a wrap with no OBSERVED line means the agent never called a supported host, not that the product failed. After uninstall, the wrap is gone.
# Stop the wrap — run the agent the way you did before vantio run.
node agent.js
npm uninstall -g @vantio/cli
pip uninstall vantio-agent-sdkGate — enforce, $499/month after trial
Request a trial at hello@vantio.ai. After you have a key, vantio login, preview policy on live traffic, then turn enforcement on for one path you marked. Stripe checkout is not live yet.
vantio login <key>
# Preview first, then enforce on a path you chose.
vantio run --summary node agent.jsPath A — Helm (Kubernetes)
Observe-only first. Pin image.tag in your values. Do not ship latest as a surprise. Annotate a workload with vantio.ai/enroll: "true" when you are ready. Nothing else is watched unless you opt it in.
cd /path/to/vantio-enterprise
# Observe-only first. Pin image.tag in your values. Do not ship latest as a surprise.
helm upgrade --install vantio-phantom-engine ./vantio-phantom-engine/deploy/helm \
-f your-values.yaml
# Gate-on-prem is included in the Phantom Engine purchase.
bash scripts/pe_customer_pack_gate_onprem.sh
bash scripts/pe_customer_pack_healthcheck.shPath B — Linux daemon (VM / bare metal)
Use Helm when you can. The daemon path is the co-ship reference. `scripts/install_enterprise_node.sh` is the internal bootstrap. It is not the priced customer SKU. It still requires the loader binary already built, local vantio-pro, and Optics CLI. Leave Phantom Engine protection on. Do not enable kill-on-enforce unless your own change process says so.
# Internal bootstrap — labeled so you do not confuse it with the priced SKU.
# It still requires the loader binary already built, local vantio-pro, and Optics CLI.
bash scripts/install_enterprise_node.sh
bash scripts/pe_customer_pack_healthcheck.shSee what is attached
No attached agents is honest idle. Agents running — not on Optics / Gate / Phantom Engine is a named gap. Unknown does not become green.
python3 scripts/vantio_assure.py attach-health
python3 scripts/vantio_assure.py planesPreview policy, then enforce on purpose
Set dry_run: false and enforce: true only after you have watched preview decisions on a path you marked. Helm Control stays enforce: false until you flip it with a values change you own. A misspelled field is not a live rule.
# No write:
python3 scripts/policy_push.py --check policies/policy.preview.example.yaml
# Preview on the live Gate (dry_run true). You choose when to write:
python3 scripts/policy_push.py --strict policies/policy.preview.example.yaml
# Confirm:
curl -sS -H "x-vantio-identity: $VANTIO_API_KEY" http://127.0.0.1:5001/api/v1/config
curl -sS -H "x-vantio-identity: $VANTIO_API_KEY" \
"http://127.0.0.1:5001/api/v1/residual-risk?demo=false"python3 scripts/policy_push.py --check --strict policies/policy.malformed.example.yaml
# expect POLICY_PUSH_STRICT_FAIL- Stale policy: if the control plane you poll is unreachable, do not assume the last good rule is still protecting you. Healthcheck must fail closed.
- Malformed policy: ignored field names come back on the write. `--strict` refuses a green CI on a typo.
- Network loss: do not invent ledger rows. Named degraded evidence is valid.
Evidence you keep
Packaged evidence can be older than the live Gate ledger. That is a named gap, not a reason to generate traffic. Customer copy says Control.
python3 scripts/vantio_assure.py production-check
python3 scripts/vantio_assure.py drill absolute # Control prove; customer copy says Control
python3 scripts/vantio_assure.py compliance-export
python3 scripts/vantio_assure.py stranger-host # SH-01..SH-20; does not mark the Standard passed by itselfRollback
Saves current Gate config, returns Gate to dry_run=true / enforce=false, and sets Helm enforce=false if that release exists. Phantom Engine protection stays on. The script refuses to run on Phantom-Box.
bash scripts/customer_pack_rollback.shUninstall
Helm uninstall, stop Gate-on-prem, stop vantio-loader if you installed the unit. Evidence folders stay. The script refuses Phantom-Box. After removal, confirm Gate /health is gone and pgrep vantio-loader is empty. On your host, you own disable.
bash scripts/customer_pack_uninstall.sh # prints the plan
bash scripts/customer_pack_uninstall.sh --yes # actually removesOne-command walk
Non-destructive on an ordinary customer install. The ATTEST line is only for an external acceptance run.
bash scripts/customer_pack_walk.sh
# On a host Vantio does not operate, after you attest that fact:
ATTEST_STRANGER_HOST=1 bash scripts/customer_pack_walk.shATTEST_STRANGER_HOST=1 records that the operator attested an external acceptance run. It does not by itself prove independence. Phantom-Box and other Vantio-operated hosts refuse that attestation.
Ordinary install versus the external acceptance test
This page is the customer install. You wrap Optics, attach Gate, enroll Linux for Phantom Engine, watch honest idle or a named gap, preview policy, turn enforcement on on purpose, keep evidence, roll back, and uninstall.
The Stranger Host Standard is a separate external acceptance test (Open). It is not a product roadmap. A pass counts only on infrastructure Vantio does not operate, with no Vantio SSH. Phantom-Box is ineligible.
python3 scripts/vantio_assure.py stranger-host --prove # fixture
python3 scripts/vantio_assure.py stranger-host --mode internal # this company host
python3 scripts/vantio_assure.py stranger-host --mode stranger --attest-stranger-host