THE FIELD GUIDE / OPERATIONS
Controller & remote-worker deployments
Choose the deployment role, then provision the database, identity and shared state deliberately.
Choose a role
A complete installation keeps the app, worker and Caddy on one machine. Controller-only deployment keeps web administration and TLS with the controller; worker-only deployment can scale independently on the same host or a standalone machine.
| Deployment file | Role |
|---|---|
| compose.yaml | Complete app, worker and Caddy installation |
| compose.controller.yaml | Controller and Caddy with separate workers |
| compose.worker.yaml | Worker-only host or multiple worker replicas |
Provision more than a database URL
Use MySQL 8+ for multi-machine deployments. Supply the correct shared encryption material, per-target SSH identities, encrypted repository/database profiles, trust bundles, trusted scanner/vendor artifacts and required evidence state. Provision persistent shared state with explicit access, rotation, backup and recovery controls, separate from disposable worker caches. A worker must not silently create a different key and claim it is ready.
Keep role startup independent
A worker-only host starts without a local web application, Caddy or TLS administration. Compatible application/schema/receipt protocols and controller/key identity are checked before claims. Network paths cover database TLS, supported shared state, target SSH, repositories and any integration routing. Existing host-key pinning and least-privilege bridge access remain.
Scale, drain and maintain
Each worker has a distinct identity, boot/session ownership, heartbeat and configured capacity. Graceful drain stops new claims and safely finishes or records active work. Lost workers retain honest interruption/recovery states without replaying destructive operations. Database migration, activation and maintenance safeguards coordinate across worker machines rather than assuming a controller-local file lock stopped remote work.
Start from a verified complete installation
The installation guide retains the existing complete-installation commands. Use role-specific repository configuration and the deployment health view when separating services. Verify secrets, storage, connectivity, version, schema and readiness before assigning target work. See controller redundancy and dependency-aware maintenance for clustered deployments.
Open the application reference for capability scope and technical details.
Open Open SECURITY_IMPLEMENTATION.md on GitHub ↗