Self-hosting

Self-hosting

Install an Infra control plane on Linux and connect owned node capacity.

Self-hosting runs the Infra control plane on infrastructure you operate. Local fleet management, storage, networking, and automation run without a Connector; a Connector is required only for access to Solarius-hosted capacity.

Requirements

The control plane requires these resources and dependencies:

ResourceMinimumPlanning guidance
OSUbuntu 22.04+ or RHEL 9+, x86_64Use a supported release with current security updates
CPU8 vCPUUse 16 or more above 100 nodes
Memory32 GBUse 64 GB or more for larger fleets and retention
Storage500 GB NVMe SSDSize metrics, logs, database, and recovery space separately
DatabasePostgreSQL 15+Bundled or externally managed
Container runtimeDocker 24+Kubernetes 1.28+ for an HA deployment
Managed nodesLinux agentKVM/QEMU on compute nodes
NetworkControl-plane reachability to required agent endpointsUnder 20 ms to managed nodes is recommended

These are installation prerequisites, not a workload sizing guarantee. Observation volume, retention, API traffic, and active operations affect resource demand. Use Capacity and Control-plane health to establish an operating envelope.

Prepare the installation

For an isolated environment, first stage the artifacts and dependencies in Restricted-network installations.

Choose a stable HTTPS origin, database location, persistent state paths, backup destination, and authentication method. Create DNS and TLS configuration before enabling SSO or enrolling remote agents.

Obtain the signed self-hosted release bundle for the installation from the deployment portal. Pin its release manifest and verify the supplied checksums. The bundle contains the Compose configuration, environment template, and administrative utility for that release.

Configure and start

On the control-plane host, open the verified release-bundle directory and copy its environment template:

Shell
cp infra.env.example infra.env

Restrict the file to the installation operator:

Shell
chmod 600 infra.env

Edit infra.env using the complete environment reference. Configure the public URL, database, persistent paths, mounted secret files, and enabled services before starting Compose:

Shell
docker compose --env-file infra.env up -d

Inspect the service state and health:

Shell
docker compose --env-file infra.env ps

Wait for required services to report healthy. If a service exits or stays unhealthy, inspect its startup logs and correct the reported configuration error before continuing to initialization.

The bundled database is suitable for an initial installation. Define database backup, monitoring, and recovery ownership before adding production workloads. Start all services with the same release bundle.

Complete initialization

Retrieve the one-time setup token through the local administrative utility:

Shell
./infra-admin setup-token

Open the configured public URL at /setup. Enter the token, create the first organization and recovery owner, select authentication policy, and review retention and encryption settings. The setup route is disabled after successful initialization. The token cannot be used as a normal API credential.

A valid setup token proves local installation access. Do not expose it in a ticket or embed it in a shared deployment log.

Connect capacity

Create an owned region and zone, configure storage and mesh networks, and enroll nodes. Keep each node cordoned until its admission checks pass. Create a test project and follow Getting started before granting production access.

Keep the control plane's recovery dependencies on independently available capacity. If its host is also their only compute or storage node, one host failure removes management and recovery capacity together.

Production readiness

Configure SSO, role bindings, backup and restore, and operational alerts. Use High availability when a single control-plane host is insufficient. Test a restore before relying on the installation's backup schedule.

Stop or remove the installation

Stopping the control plane removes management availability but does not issue shutdown commands to every guest. Do not delete database or state volumes during a routine stop. Decommission workloads, revoke identities, export required records, and address retained backups before permanent removal.