Codexยถ

Descriptionยถ

Codex is OpenAIโ€™s terminal coding agent, installed on a workstation and pointed at this deploymentโ€™s own model gateway instead of the vendor API.

Overviewยถ

The role installs the @openai/codex npm package at the version pinned in services.codex.npm_version and, when the workstation also runs svc-ai-litellm, writes a provider profile that sends every completion to the gateway over the loopback address the engine publishes it on. Nothing leaves the machine: the gateway answers on 127.0.0.1, so the workstationโ€™s virtual key never crosses a network.

Codex reads its key from an environment variable rather than from its config file, so the role writes the key to a 0600 file under ~/.config/environment.d/ and names that variable in config.toml. A workstation whose gateway lives in another inventory leaves services.codex.gateway_url and credentials.gateway_key set by hand instead, and the loopback wiring stays out of the way.

Architectureยถ

ARCHITECTURE.md draws Codex from its own metadata: the containers it runs under compose, what changes under swarm, how each volume is backed, and every role it depends on or is depended upon by.

Section

Drawn from

Compose

meta/services.yml

Swarm

meta/services.yml replicas and placement

Volumes

meta/volumes.yml against the NFS decision chain

Dependencies

meta/services.yml and meta/main.yml of every role

Featuresยถ

  • Feature: Describe a capability.

Quick Setupยถ

Developmentยถ

Clone, set up the workstation, and deploy Codex onto the local stack:

git clone https://github.com/infinito-nexus/core.git
cd core
make onboard
make compose-deploy mode=reinstall apps=dsk-gnt-codex full_cycle=false

Productionยถ

Install Codex directly onto the target machine: clone the repository, install the OS prerequisites and the repository toolchain, then deploy against localhost over a local connection (no SSH, no container):

git clone https://github.com/infinito-nexus/core.git
cd core
bash scripts/install/package.sh
make install
source scripts/meta/env/load.sh

APP=dsk-gnt-codex
DOMAIN="<your-domain>"
TLS_MODE=self_signed
SSH_PUBLIC_KEY="<your-ssh-public-key>"
INVENTORY=inventories/production
infinito administration inventory provision "$INVENTORY" \
  --inventory-file "$INVENTORY/devices.yml" \
  --host localhost \
  --include "$APP" \
  --vars "{\"TLS_MODE\": \"$TLS_MODE\", \"DOMAIN_PRIMARY\": \"$DOMAIN\", \"users\": {\"administrator\": {\"authorized_keys\": [\"$SSH_PUBLIC_KEY\"]}}}"
infinito administration deploy dedicated "$INVENTORY/devices.yml" \
  --password-file "$INVENTORY/.password" \
  --diff -vv

Creditsยถ

Kevin Veen-Birkenbach

Part of the Infinito.Nexus Project and maintained by Kevin Veen-Birkenbach. Licensed under the Infinito.Nexus Community License (Non-Commercial).

That licence covers this role. The software it deploys is a separate grant: Apache-2.0, under which commercial use is allowed. You owe its authors this much: keep the copyright notice and the licence text. Permission for one of the two is not permission for the other.