Configuration reference
Specification and schemas for .exocomp/hooks.yml, Quadlet container units, and environment variables.
Source hooks (.exocomp/hooks.yml)
Placed at the root of a registered Git or directory source. Defines automated pre-run/post-run commands and health check probe gates.
version: "1"
# Ordered pre-run steps executed before playbooks/applies
pre_run:
- name: verify-ansible-lint
command: ansible-lint playbooks/site.yml
continue_on_error: false
# Ordered post-run steps executed after successful runs
post_run:
- name: notify-sync
command: curl -s -X POST https://status.lan/ping
# Declared health probes gating execution
health_gates:
- probe: dns-resolver
expected: UP
timeout: 10s
Systemd Quadlet unit (exocomp.container)
Controls rootless container execution under user systemd:
[Unit]
Description=exocomp control plane
After=exocomp.volume
[Container]
Image=ghcr.io/abn/exocomp:latest
ContainerName=exocomp
Volume=exocomp.volume:/var/lib/exocomp
UserNS=keep-id
Environment=XDG_DATA_HOME=/var/lib
Environment=EXOCOMP_IMAGE=ghcr.io/abn/exocomp:latest
LoadCredentialEncrypted=host.key:/var/lib/exocomp/host.key.cred
Exec=serve
[Service]
Restart=always
RestartSec=5
MemoryMax=1.5G
[Install]
WantedBy=default.target
Environment variables
| Variable | Description |
|---|---|
EXOCOMP_DATA_DIR |
Directory holding exocomp.db, keyring.age, and caches |
EXOCOMP_OUTPUT |
Output formatting: text or json (or yaml for export) |
EXOCOMP_REMOTE |
HTTPS endpoint or pinned host of a remote daemon when using the CLI as a client |
EXOCOMP_TOKEN |
Bearer token for client authentication |
EXOCOMP_IDEMPOTENCY_KEY |
Client-provided deduplication key for mutating requests |
EXOCOMP_SANDBOX |
Job isolation tier default: enforcing, opportunistic, or disabled |
EXOCOMP_IMAGE |
Container image ref recorded by the daemon for disaster recovery |
EXOCOMP_PUBLIC_URL |
Public base URL for decision links in notifications |
NO_FLYLINE |
Disable animated terminal flyline progress during CLI runs |