Key points
- PostgreSQL holds durable execution, audit, credential, monitoring, and setup state.
- Docker runners create named Docker volumes; Kubernetes runners create an agent-owned PVC-backed workspace per run.
- Step
volumesreuse existing storage and create it when missing, involume:/mount/pathform. - The reserved runtime output path
/nopsai/outputscannot be used as a volume mount target. - Backups are gzip-compressed JSON Lines files under
DATA_BACKUP_DIR, defaulting to/data/backups.
How it works
The default Compose topology does not mount the backup directory as durable storage, so production deployments must mount or export it. This is the single most common persistence surprise.
Docker step containers leave image-provided temporary directories such as /tmp and /var/tmp unchanged, so images that rely on them behave normally.
Examples
# the only durable volume the control plane needs
docker volume ls --filter name=db
# volumes created by pipeline steps, which are caches rather than state
docker volume ls --filter label=nopsai.io/runner-idLimits
Current behavior
- There is no S3 or generic object-storage artifact or backup backend.
- Backup creation, listing, checksum metadata, download, and cleanup exist; a verified product-managed restore workflow does not.
Implementation evidence
config/config.goDATA_BACKUP_DIR and runtime output limits.
doc/kubernetes-runner.mdAgent-owned PVC workspace behavior.

