Skip to main content

Machines, Volumes and Registries

The infrastructure layer is what instances actually run on. It lives under Configuration and is manager-only.

Machines

A Machine is a server zCICD can reach and run work on.

FieldPurpose
NameLabel
HostHostname or address
TypeDevelopment-Machine or Production System
SSH User / SSH Key / SSH PubkeyCredentials. The private key is manager-only
Proxy JumpAnother machine to tunnel through — for hosts not directly reachable
HomedirHome directory on the machine
Odoo CommandThe zodoo CLI to invoke. Default: odoo
Is Docker HostWhether containers run here. Default: yes
External http-AddressPublic URL for instances on this machine
Settings / Docker ComposeMachine-specific configuration applied on reload
CICD src dirWhere zCICD keeps its source checkouts
caution

Type is not cosmetic. Instance cycle-down, volume freeing and untouched-branch cleanup only ever act on machines of type Development-Machine. That is the hard guard that keeps automated teardown away from production — see Instance Lifecycle.

Transport

Transport controls how zCICD reaches the machine:

ValueBehaviour
SSH (one connection per command)Default. A fresh connection per command
Agent (persistent channel)Uses a running hostagent over a persistent channel

Agent transport is faster but needs the hostagent deployed. Switching back to SSH takes effect immediately and requires no deploy, which makes it the rollback lever if the agent misbehaves.

Health flags

git-cicd installed and odoo (wodoo) installed record whether the machine has the tooling zCICD depends on. Upgrade framework controls whether zCICD keeps the framework up to date there.

Volumes

Each machine has Volumes — paths with a declared purpose.

TypeUsed for
DumpsWhere dumps are stored
Dumps (just to import)Incoming dumps, import only
SourceSource checkouts and instance workspaces
TempdirScratch space
OtherAnything else

Volumes track Used, Free and Total size, plus a Used %. Set Warn below percent (default 10) to be warned before a volume fills up — a full source volume is a common cause of builds failing in confusing ways.

A dumps volume can be associated with a repository via Repo associated with Dumps, which is how zCICD knows which dumps belong where.

Registries

A Registry is a Docker registry that built images are pushed to and pulled from. Using one means a production machine pulls a prebuilt image instead of building from source.

FieldPurpose
Host / PortRegistry address. Port defaults to 5000
PathNamespace within the registry. Default /myspace1
Username / PasswordPush credentials. Password is manager-only
Hub URLFull URL used for pushing
Hub URL ReadonlyURL used for pulling
Username Readonly / Password ReadonlyPull-only credentials

The split between write and read-only credentials is deliberate: production systems only ever need to pull, so they get the read-only pair.

Attach a registry to a repository (Docker Registry on the repository form) and to release actions, which control whether a release pushes images.

Postgres servers

A Postgres Server is a database server available to instances.

FieldPurpose
DB HostDefault cicd_postgres
DB PortDefault 5432
DB User / DB PasswordCredentials. Password is manager-only
TypeThe server's role
BTRFS/ZFS volumes (snapshotting)Whether the underlying filesystem supports snapshots
Keep daysRetention for databases on this server
DatabasesThe databases currently on it

BTRFS/ZFS is what makes the Snapshot and Restore Snapshot branch actions possible. On a server without a snapshotting filesystem those actions are unavailable, and dumps are the only checkpoint mechanism — see Database Backup and Restore.

A machine can also be told to run Postgres in a container with Use docker container for postgres.

Two more items sit under Configuration and are worth knowing:

  • Schedules — recurring job definitions, used by compressors among others.
  • Configuration Backup — export and restore of the zCICD configuration itself. Worth running before any significant infrastructure change.