1. Four decisions that must be made before deploy
POC deployment manual chapter. Verified against the 2026.10 mainline; command output follows the installer delivered for that engagement.
Back to overview · Full table of contents · Download full PDF
This chapter: once the installer starts writing, the product, deployment form, and most data-dependency choices cannot be changed. This chapter states those decisions and their effects in one place. After the reader fills in the confirmation table in section 1.6, later chapters have a single set of answers. The readers are the implementation engineer for this POC and the customer system administrator who must sign off.
1.1 Which product
The first step on the customizer site is choosing the product. It cannot be changed after installation.
| Product | Includes | Does not include |
|---|---|---|
| Full edition | Enterprise AI platform: employee chat, knowledge bases, document parsing, agents, and the model and tool gateway | — |
| Zentrix Gateway | Model and tool gateway and governance: provider access, models and model groups, callers and keys, traffic rules, guardrails, usage and audit | Hosted agents, document parsing |
Both products use the same installer and the same commands. The only difference is which capabilities the offline package carries. Switching to the other product requires a wipe-and-reinstall (Chapter 11), which deletes all existing data.
How to decide: if this engagement only verifies gateway capabilities (model access, keys and calls, routing and guardrails, usage and audit), choose Zentrix Gateway. If knowledge bases, document parsing, and agents must be verified as well, choose the full edition. When unsure, choose the full edition. Capabilities not enabled stay in the offline package and can be turned on from the console after install, without downloading again.
Note: the offline-package file name contains a product field (zenova-zentrix_gateway-… or zenova-zenova-…); the installer file name does not. For the same version, the two products download installer files with the same name. Store them in separate directories after download, or it is easy to upload the wrong one.
1.2 Which form
This release provides two forms. They apply to completely different situations.
| Form | Option on the customizer site | Applies to | Scope of this manual |
|---|---|---|---|
| Single-host bare metal | Linux · x86 / Linux · ARM Direct server install (systemd) | One host runs the control plane, the central gateway node, and data dependencies; POC and single-host production | Chapters 2–8 |
| Kubernetes | Helm deployment | The customer already has a cluster | Out of scope for this manual; follow a dedicated implementation plan |
Single-host plus a remote gateway node (when business calls need to enter from another network zone) is in Chapter 9.
Note: every acceptance, backup, upgrade, and troubleshooting command in this manual is for a bare-metal install. The Helm form has a different offline package, install method, and day-to-day operations. Do not mix them.
1.3 Host and capacity
The installer checks the host before writing anything. If a requirement is not met, it stops at that check.
| Item | Requirement | If not met |
|---|---|---|
| OS | Linux (systemd), x86_64 or aarch64 | Blocks |
| Memory | At least 8 GiB | Blocks |
| Disk | Cumulative by capability; see the table below | Blocks by default (warning only when an install directory is specified explicitly) |
| Time | Offset from the time source no more than 30 seconds | Blocks |
| Privileges | Install and operations commands require root | Blocks |
| CPU instruction set | Self-hosted analytics database requires AVX, AVX2, BMI1, BMI2, FMA, F16C, MOVBE, LZCNT | Blocks; can switch to an existing analytics database |
| Container runtime | Required only when hosted agents or document parsing is selected, or when a multi-host plan lets the installer deploy a high-availability data layer | Blocks |
Disk space is cumulative by selected component. The check is free space on the filesystem that holds the install directory (default /opt/zenova).
| Component | Extra space |
|---|---|
| Base install | 20 GiB |
| Self-hosted platform database (PostgreSQL) | 30 GiB |
| Self-hosted analytics database (ClickHouse) | 50 GiB |
| Bundled object storage | 10 GiB |
| Hosted agents | 20 GiB |
| Knowledge base | 5 GiB |
| Document parsing | 5 GiB |
Three typical combinations:
| Combination | Total |
|---|---|
| Zentrix Gateway, core, all three dependencies deployed by the installer, bundled object storage | 20 + 30 + 50 + 10 = 110 GiB |
| Full edition, every capability except the high-availability data layer, all three dependencies deployed by the installer, bundled object storage | 20 + 30 + 50 + 10 + 20 + 5 + 5 = 140 GiB |
| Core only, all three dependencies are existing services | 20 GiB |
Note: the table is the install-check threshold. It does not include business-data growth, logs, or local backups. Call volume is small during a POC, so prepare to the threshold. Reassess concurrency and retention before going into production.
Two behaviors when disk is short: without --install-dir, insufficient space blocks the install, prints diagnostic code HOST_DISK_LOW, and on Linux lists the three mounts with the most free space as alternatives. With --install-dir passed explicitly (including the default value /opt/zenova written out), insufficient space is only a warning and the install continues. Do not add --install-dir just to skip the check — after you add it, this check is only a hint.
1.4 Access URL and ports
The access URL is what browsers and callers use. The local listen port is the port on the install host that actually receives requests. The two can differ when a proxy, NAT, or TLS ingress sits in front.
| Scenario | Access URL | Local listen port | How to fill it in at install |
|---|---|---|---|
| Direct intranet, port 80 | http://10.20.30.40 | 80 | Fill in only the access URL |
| Direct intranet, non-80 port | http://10.20.30.40:8080 | 8080 | Fill in only the access URL |
| Front proxy or NAT | http://gw.example.com:18080 | 8080 | When asked whether a proxy or NAT forwards in front, choose Yes and fill in the local listen port; or pass --business-entry-port 8080 |
| Front TLS ingress | https://ai.example.com | 80 | The installer asks for the local port the TLS ingress forwards to; press Enter for 80 |
Note: filling in https:// does not make this host serve HTTPS. Certificate and TLS termination must happen on the customer's load balancer or reverse proxy; what is forwarded to this host is still plaintext HTTP. Also, when the access URL is http://, the sign-in page does not offer passkeys, and two-factor authentication can use only an authenticator app.
The admin ingress (console) shares one port with the business ingress by default. To put the console on a separate port, pass --admin-entry-port. The business ingress carries model, MCP, and A2A calls and health checks. If that port is in use, installation stops and does not pick another port automatically. If the admin ingress port is in use, the installer advances to the next free port and says so.
Firewall: inbound traffic only needs the business-ingress port (and 443 when enabled). On Linux the installer opens only the business ingress and 443 automatically; it does not open a split-out admin ingress. ufw and nftables are not touched; operations must configure them.
1.5 Data dependencies
Each of the three data dependencies is chosen as Deployed by us or Use an existing service.
| Dependency | Deployed by the installer | Requirements when using an existing service |
|---|---|---|
| Platform database (PostgreSQL) | Initialized on this host, loopback only | PostgreSQL 16, superuser account; extensions vector 0.7 or later, pg_trgm, uuid-ossp, pgcrypto, btree_gist available; max_connections at least 400 |
| Analytics database (ClickHouse, required) | Initialized on this host, loopback only | 26.7 or later; HTTP or HTTPS interface port (commonly 8123 / 8443, not native 9000); default account with a password; cluster, shard, and replica macros configured; default can create databases |
| Object storage | Bundled object storage (recommended for production), or a local directory (single-host trial) | S3-compatible; bucket created in advance; access key has read, write, and delete on that bucket; address, region, bucket, and addressing style all present |
Judge the choice against these constraints:
| Constraint | Effect |
|---|---|
| Backup scope | zenova backup backs up only the platform database, analytics database, and local object data deployed by the installer. An existing PostgreSQL or existing S3 is not included; the corresponding administrator is responsible |
| Wipe-and-reinstall | Applies only when all three dependencies are deployed by the installer (object storage is bundled or a local directory) |
| Object-storage mode | Cannot be changed online after install. Changing it requires backup, reinstall with the new choice, then restore |
| Existing platform database | If that database already holds historical data for this platform, an ordinary install refuses to continue; use the takeover path (out of scope for this manual) |
POC recommendation: let the installer deploy all three. Backup, restore, and wipe-and-reinstall then close on this host, without waiting on the customer database administrator's window.
Cloud-database pitfall: a cloud “high-privilege account” is usually not a superuser (rolsuper is false), and the installer check refuses it. Before choosing existing PostgreSQL, confirm on the customer side that SELECT rolsuper FROM pg_roles WHERE rolname = current_user; returns t.
1.6 Deployment-parameter confirmation table
Fill in the table below before install and have the customer confirm it. Do not write passwords or keys on the table; record only where they are kept and who keeps them.
| Item | On-site value |
|---|---|
| Product (full edition / Zentrix Gateway), version, channel | |
| Capability list | |
| Host name, IP, OS version, architecture | |
| CPU cores, memory, free space on the volume that holds the install directory | |
| Access URL, local listen port | |
| Admin access URL, admin ingress port (when split) | |
| Certificate and TLS termination location, owner | |
| Platform database: mode, address, administrator account | |
| Analytics database: mode, address, database type | |
| Object storage: mode, address, region, bucket, addressing style | |
| Operations notifications: channel and address, recipients | |
| Time-source address | |
| Model-provider access address and credential keeper | |
| Backup off-host location, key-material keeper | |
| Implementation owner, customer owner, maintenance window |
Note: this table is the single source for every later step. After initialization in Chapter 6, compare actual values with this table and record any mismatch in the handover notes. When the POC moves to production, this table is the first page of the handover pack.
Capability notes
| Not provided | Alternative |
|---|---|
| A capacity-planning tool, or OS-release and kernel-parameter detection before install | The installer checks only CPU architecture, memory, disk, service manager, time, ports, and security modules. Prepare capacity from the section 1.3 threshold plus a business estimate. Any release that passes the host checks can be installed |
| Automatic disk selection and automatic expansion before install | When space is short, the installer prints HOST_DISK_LOW and lists candidate mounts; on-site staff choose another directory, or reduce components deployed on this host |
| Installing the server on macOS or Windows | The server is provided only for Linux (systemd). The platform list on the customizer site follows what the release actually publishes |
| Changing product after install | Wipe-and-reinstall only; all existing data is deleted |
Zentrix Gateway POC Deployment Manual
From downloading the install artifacts to handing over a working environment: planning, obtaining packages, preparing the host, installing, initializing, accepting, and operating.
2. Get install artifacts from the download site
POC deployment manual chapter. Verified against the 2026.10 mainline; command output follows the installer delivered for that engagement.