A Site needs organizational context
Organization, Project, Role and Site define access boundaries and Ownership from the start.

MANAGED WORDPRESS PLATFORM
Turns WordPress from a standalone installation into a Platform Resource; Identity, Infrastructure, Storage, MySQL, Valkey, Edge, Observability, Capacity, recovery and Security sit under one Product Control Plane.
4SO Enterprise WordPress components: sites on managed platform services
Product problem
When Site, Domain, Storage, Database, Cache, Update, Security and Backup are operated with separate tools, every site becomes an operational island. This product turns them into manageable resources in a self-hosted PaaS.
Organization, Project, Role and Site define access boundaries and Ownership from the start.
Storage, MySQL, Valkey, Edge and Observability are managed as Platform services.
Backup, PITR, Clone, Staging and Resume are product-owned, traceable paths.
Content or runtime changes are made with a clear Impact, Generation and Result.
Capability snapshot
The focus is the site lifecycle: creation, Domain binding, capacity, Update, recovery, Security and day-to-day operations.
Create, Suspend/Resume, Clone, Staging and the lifecycle of every Site.
User and Operator access on product-owned boundaries.
Storage lifecycle and Policy for site Data and backups.
Data services under the Platform lifecycle and capacity.
Domain Binding, HTTPS and Edge policy within the Site management path.
Health, Metrics, Logs and operations from the Site's point of view.
Capacity Policy and Scale decisions matched to the workload.
Backup/PITR, Access grant, Security policy and Safe Update.
Panel, API and AI/MCP are not three separate decision authorities. All of them work on the same Product RBAC and Durable Operations, so no interface can bypass the lifecycle.
Deployment model
The WordPress runtime sits on a self-hosted Foundation; sites are built on the same Platform, and Capacity or Region expand without changing the user model.
| Profile | Foundation | Site runtime | Use |
|---|---|---|---|
| Production Core | 3 nodes | Sites on Platform Services | Enterprise baseline with infrastructure HA |
| Scale-out | Core + added nodes | Broader Site Capacity | More capacity without building a separate Platform |
| Staging / Clone | Same product authority | Separate environments for Test/recovery | Change testing, Clone and controlled transfer |
| Multi-region | Product-defined regions | Placement and Edge matched to the Region | Site distribution and recovery across multiple failure domains |
Architecture
The Control Plane holds Intent, RBAC and Operations; the Infrastructure, Storage, Data, Edge and recovery layers execute change, and the Site runtime shows the result.
| Layer | Component / Plane | Responsibility | Operational behavior |
|---|---|---|---|
| Foundation | RKE2 | Self-hosted platform runtime and node lifecycle | The Platform is built and verified before any Site |
| Identity | Keycloak / OIDC + Product RBAC | Delegated identity and Organization/Project/Site authorization | The identity provider does not replace the Product permission model |
| Data Plane | MySQL + Valkey | Persistent site data and cache/session acceleration | Data services have their own lifecycle and capacity |
| Storage / Edge | Platform storage + Domain/TLS/Edge planes | Persistent content, public binding and request edge | Domain and storage are part of the Site lifecycle |
| Observability | VictoriaMetrics · Loki · Alloy · Grafana | Metrics, logs and operator visibility | Site health is built from telemetry and runtime read-back |
| Recovery | Backup · PITR · Clone · Staging | Point-in-time recovery, isolated verification and promotion | Restore is a product workflow, not an emergency command |
Install Authority. Production installation starts from a sealed artifact and operator-owned intent; before bootstrap, Remote Doctor assesses every target without mutation.
| Stage | Authority / Component | Behavior |
|---|---|---|
| Artifact admission | Trusted SHA256 + sealed release preparer | The hash is checked before extraction, and exact archive/tree parity is verified again after extraction. |
| Operator intent | Normalized install config | Node/IP/role/data-device, URLs and SSH host-key fingerprints are explicit; the installer guesses none of them. |
| Remote admission | Read-only Remote Doctor | The independent SSH fingerprint and target readiness are confirmed before bootstrap/runtime mutation; TOFU is not accepted. |
| Foundation | RKE2 → Authority/Identity → Storage | The Platform foundation is built and read back before Site services. |
| Data / Edge | MySQL → Valkey → Edge → WordPress | Data, cache and public edge are part of the same Platform lifecycle. |
| Day-2 planes | Observability → Capacity → Recovery → Access → Security | Installation is complete only when the operational planes are also available after runtime. |
| Operator handoff | Credential-free handoff metadata | The Panel/Identity URL and the owner-only credential path are handed off; no password/token is printed in the handoff or logs. |
Lifecycle
The lifecycle covers Setup, Domain, Capacity, Update, Backup, recovery and Security, not just the initial WordPress installation.
Operational profiles
Users do not need to manage Kubernetes details or the underlying services for day-to-day work.
Day-to-day work for each Site.
Controlled change of Managed Content and the runtime.
Recovery and creation of an environment separate from Production.
Resource management based on Policy and Usage.
The Site's public boundary and security policy.
Human and agentic access under the same RBAC.
Site flow and Durable Operation
A Site mutation is bound to a specific generation through an Idempotency-Key and request fingerprint; DR, Plan Migration, Runtime Transition and Recovery lifecycles can fence general Site changes.
Staging and Canary prove the change path before Cutover.
Restore first builds Clone/Staging, then Promote or Abort.
A Site is Ready only when generation and dependencies converge.
A Site is a multi-layer resource, not just a container.
Public edge is part of the same Site's lifecycle.
Change is proven in staging/canary before cutover.
The recovery point is first verified in an isolated environment.
Scale passes through telemetry and placement authority.
Migration and Site deletion must also have explicit, recoverable lifecycles.
Plan or Runtime changes run with a checkpoint and a controlled cutover.
Deleting a Site is a destructive action with a Fence and an ordered release of dependencies.
| Action / Flow | Admission / Preconditions | Execution / Lock | Success Criterion | Failure / Recovery |
|---|---|---|---|---|
| Create / Reconcile Site | Org/Project/Plan/Region, generation and platform readiness must be valid | Site intent + Operation + Outbox + Audit are bound to one resource/generation | ObservedGeneration converges with TargetGeneration and data/cache/storage/application readiness | A failed Operation is terminal; only explicitly resumable runtime families can move Failed→Running |
| Suspend / Resume | The Site is not deleted and no DR/Recovery/Plan Migration/Runtime Transition fence is active | New generation + durable Operation + site.reconcile outbox | Observed Site state converges with the suspension intent | A conflict is rejected with 409 instead of overwriting; idempotent replay returns the same request |
| Safe Update / Runtime Transition | Valid compatibility, staging canary and rollback checkpoint/fingerprint | The target PHP/runtime transition is bound to the exact staging/backup authority | Canary/target runtime and generation verification before cutover | Drift in generation or rollback authority makes the operation stale/blocked |
| Backup / PITR | Provable recovery point and data-plane compatibility | The recovery request/operation passes through the same Product authority | Restored Site/Data and runtime health are confirmed before promotion | Active Recovery fences other overlapping lifecycles; failure has its own recovery path |
| Plan Migration | Source/Target Plan and usage/capacity admission | Requested → Reconciling → Prepared → Completed | Plan cutover only after project/site dependencies are ready | Failed can enter RollbackRequested → RollingBack → RollbackPrepared → RolledBack |
| Delete Site | confirmSiteId must equal the exact Site ID and purgeData=true; active recovery is not allowed | The Site is suspended and DeletionRequested + durable Operation/Outbox/Audit are recorded | Dependencies are released and deprovisioning is observed | A repeated Delete or an overlapping lifecycle does not overwrite; destructive intent is explicit and generation-bound |
* Resume is not universal. Only operation types with a durable runtime generation and a defined resume owner can move from Failed back to Running; for all others, the terminal state is immutable.
Operations catalog
Instead of exposing backend entities, the Panel shows the processes needed to operate WordPress.
4SO Enterprise WordPress brings Site, Data, Edge and recovery operations together under one experience.