Capture the deployment/supervision model now implemented by @quinn/manage-apps:
- manage_apps_orchestrator: manage-apps auto-discovers .infra.yaml (no registry);
retire per-app app.manifest.yaml and hand-rolled start/deploy ssh scripts.
- systemd_supervision: standing cloud services run as systemd units (not
foreground ssh / PID files); deploy installs the unit, manage-apps drives it.
- mesh_host_resolution: service.host is an ssh alias from net-tools host-apply;
internal traffic rides the WG mesh (no auth on-mesh, no public app ports).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a global tier (no producer segment) for cross-producer shared services:
com.uvlava.dns (DNS), com.uvlava.wg (mesh hub). Pattern now allows optional
producer segment. Producer hosts stay com.uvlava.<producer>.<role>.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add two must-rules and a schema pattern:
- cloud_provider: standing cloud hosts run on DO (nyc3 default), uvlava TF.
- droplet_naming: com.uvlava.<producer>.<role>; name is ForceNew → rename
live via doctl + ignore_changes=[name], never a destructive apply.
- droplets[].name pattern ^com\.uvlava\.(ct|mc|quinn)\.[a-z0-9-]+$
Reflects the live fleet: com.uvlava.{ct.services,ct.redroid,quinn.artifacts,quinn.infra}.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add optional `droplets` array for producer-root manifests (@quinn/.infra.yaml):
one shared services droplet (all forges + npm/pypi/swift registries + DNS + edge)
+ a dedicated MCP droplet, instead of one droplet per producer. v0.3.0->0.4.0.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add an optional 'environment' field (default prod) and document sibling
.infra.dev.yaml manifests (same schema) so a project can declare a distinct
non-prod deployment — e.g. a local mac operator instance alongside the DO prod
service. Run-only/access config (passcodes, bind addrs) stays out of the manifest.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add document apiVersion (conventions/v1) + per-convention semver + updated date to
the schema and all seed conventions; manifest files carry their own apiVersion
(infra/v1). New ./run (symlink -> scripts/cli/run) with lint:yaml validating every
programming_*/<name>.yaml against the schema (name==filename, scope==dir). Rename
infra-manifest.yaml -> infra_manifest.yaml for name match. 4/4 valid.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 08:36:10 -04:00
Renamed from programming_general/infra-manifest.yaml (Browse further)