Blueprint rules
Workload, host, expected exposure, protected-state size, and recovery priority form the typed preflight context. Derived state categories come from the maintained workload catalog rather than URL text.
Methodology
The application carries one declared workload boundary from planning into configuration inspection, then keeps detected facts separate from launch work that still requires confirmation.
Blueprint rules
Workload, host, expected exposure, protected-state size, and recovery priority form the typed preflight context. Derived state categories come from the maintained workload catalog rather than URL text.
Compose normalization
The browser resolves YAML anchors, normalizes short and long syntax, validates against the pinned Compose schema, and prefers final docker compose config output.
Source review
Every maintained workload, rule family, and guide declares its upstream references, review cadence, affected pages, and formula or rule identifiers.
Workload baseline contract
WordPress, Nextcloud, and Gitea share one typed catalog contract. Each entry must identify its service shape, durable state, four update gates, rollback package, recovery acceptance checks, and workload-owned primary sources. Release tags and complete Compose files are absent from this catalog.
State boundary
Every state item has a category used by the deployment blueprint, expected Compose evidence, a consistency-aware backup boundary, and an application-level restore proof. Display labels and planning state come from the same record.
Update gates
Every workload passes through capture, quiesce, apply, and verify. Each gate has an observable completion condition so pulling an image cannot be mistaken for a completed application update.
Recovery acceptance
Rollback always joins the prior application model with compatible state. Recovery finishes only after representative identity, read, write, state, integration, and public-entry workflows pass.
Contextual preflight
A publicly published port conflicts directly with a private-network blueprint. Web-only plans reject a public SSH mapping, while missing Web or SSH entry roles remain confirmation items because an external gateway can own those edges. Database-like services publishing beyond loopback remain high priority in every context.
State-bearing services are associated with named volumes and documented bind mounts from the rendered model. Database services receive a database-consistent recovery action; anonymous or missing mounts stay unresolved. The blueprint’s state categories and protected size define the independent recovery confirmation.
Schema failures, privilege expansion, Docker socket access, host networking, database exposure, and literal sensitive values are always high priority. Missing persistent mounts and mutable image references rise when the attached recovery boundary makes reproducibility or recoverability consequential.
Satisfied means the rendered model contains the expected evidence. Confirm is work that Compose alone cannot prove. High priority is a detected conflict or missing boundary that should be resolved before launch.
Neutral VPS specification
The VPS planner carries only the known workload, state, exposure, and recovery boundary from deployment planning. CPU, application RAM, database or cache RAM, host reserve, system storage, growth, and transfer remain unresolved until supplied from upstream requirements, measurement, or an existing deployment.
Memory floor
RAM = application + database/cache + host reserve, rounded upward to the next half gigabyte. The three inputs stay visible so a provider’s advertised RAM is not compared with an unexplained total.
Storage floor
forecast state = current state + monthly growth × horizon. The state target is divided by the remaining share after the selected operating reserve, then the separate system, image, log, and temporary allowance is added.
Transfer floor
monthly transfer = expected public egress × (1 + reserve). Private-only plans assert no public-transfer floor, but still retain outbound-dependency and private-ingress verification.
Every result also emits the same eight provider checks: region, CPU entitlement, RAM, persistent storage, monthly transfer, recovery, networking, and host operations. Current price, availability, fair-use limits, snapshots, IP charges, overage, resize downtime, and export access remain candidate-specific fields rather than automated claims.
Change-impact comparison
Both inputs pass through the same YAML resolver and pinned Compose schema. The comparison joins services by name, ignores mapping order, and evaluates image references, published ports, environment key additions/removals/value changes, mounts, privileges, network membership, health checks, dependencies, restart policy, and logging limits.
Backup trigger
State-bearing image changes, removed services, and removed or retargeted mounts require a recovery point before the proposed model is applied. Other changes retain an explicit migration confirmation.
Verification trigger
Every structural change produces a post-change verification scope from the categories and services that moved. Schema issues require a clean re-render before comparison can be treated as ready.
Rollback trigger
A changed model keeps the previous rendered configuration, prior image references, required environment sources, and compatible state recovery point together. Environment values are never emitted in the result or copied plan.
Continue planning
Editorial record
Maintained by Make Your Own Tools to turn “Validate a deployment” into a defined host, state, exposure, and recovery boundary. The references below provide the technical context for this planning path. Its calculation rules and planning assumptions are documented in the methodology, and affected calculations pass regression checks before the review date advances.