Skip to Content
DocsControl PanelManaged Hosting

Managed Hosting

The Control Panel integrates with cloud hosting providers to let you provision, manage, and track servers directly from the dashboard. Currently supported providers are Hetzner Cloud and DigitalOcean.

Cluster Autoscaling (Team / Enterprise) 🔒

Phase Г.4 introduces a dedicated Add managed node wizard at Clusters → Autoscale. The wizard provisions a fresh VM via the provider API, plumbs cloud-init that runs the standard install.sh --register=... flow, and binds the new node into the tenant’s fleet without manual ssh.

  • Provider tokens are stored encrypted at rest (per-tenant; never returned to the UI after creation). Configure them on step 2 of the wizard.
  • Budget gate — set autoscale.{tenant_id}.budget_cents in CP settings to cap monthly spend per tenant. New jobs that would exceed the cap are rejected with a clear error.
  • Auto-decommission — VMs that fail to register within 30 minutes are deleted from the provider so a transient bootstrap failure does not leak cloud spend.
  • Plan gate — the wizard’s submit endpoint requires the Team plan (capped at 5 autoscaled nodes) or Enterprise (unlimited). Free / Pro tiers can browse the catalogue but cannot submit jobs.

The wizard’s 8 steps: provider → token → region → plan → hostname → confirm → run (live SSE timeline) → done. The page also shows existing managed bindings with a one-click Decommission action.

Supported Providers

ProviderAPI Token VariableCapabilities
Hetzner CloudCC_HETZNER_TOKENServer provisioning, region selection, size selection, cost tracking
DigitalOceanCC_DO_TOKENServer provisioning (Droplets), region selection, size selection, cost tracking

Connecting a Provider

  1. Obtain an API token from your provider’s dashboard
  2. Set the corresponding environment variable on your Control Panel instance:
    • CC_HETZNER_TOKEN for Hetzner Cloud
    • CC_DO_TOKEN for DigitalOcean
  3. Restart the Control Panel
  4. The provider appears on the Hosting page

API tokens grant full access to your provider account. Use tokens with the minimum required permissions and store them securely. Never commit tokens to version control.

Provisioning a Server

  1. Navigate to Hosting from the sidebar
  2. Click New Server
  3. Select the hosting provider (Hetzner Cloud or DigitalOcean)
  4. Configure the server:
SettingDescription
NameA display name for the server
RegionThe data center region (e.g., fsn1, nbg1 for Hetzner; nyc1, sfo3 for DigitalOcean)
SizeServer type / plan (e.g., cx11, cpx21 for Hetzner; s-1vcpu-1gb for DigitalOcean)
ImageOperating system image (Ubuntu, Debian, etc.)
  1. Click Provision

The Control Panel calls the provider API to create the server. Once the server is running, Cloud OS can be automatically installed and the instance registered with the Control Panel.

Provisioning Flow

┌───────────────┐ API Call ┌──────────────┐ │ Control Panel │──────────────►│ Provider │ │ │ │ (Hetzner/DO) │ │ │◄──────────────│ │ │ │ Server Info │ │ └───────┬───────┘ └──────────────┘ │ Install Cloud OS ┌───────────────┐ │ New Server │ │ (Cloud OS │ │ Instance) │ └───────────────┘

Region Selection

Each provider offers multiple data center regions. The provisioning form shows available regions with their location names:

Hetzner Cloud Regions

Region CodeLocation
fsn1Falkenstein, Germany
nbg1Nuremberg, Germany
hel1Helsinki, Finland
ashAshburn, USA
hilHillsboro, USA

DigitalOcean Regions

Region CodeLocation
nyc1, nyc3New York, USA
sfo3San Francisco, USA
ams3Amsterdam, Netherlands
sgp1Singapore
lon1London, UK
fra1Frankfurt, Germany
blr1Bangalore, India
tor1Toronto, Canada
syd1Sydney, Australia

Size Selection

Server sizes determine the CPU, RAM, and disk resources. The provisioning form lists available sizes with their specifications and monthly cost.

Pricing shown during provisioning is sourced directly from the provider API and reflects current rates. The Control Panel does not add any markup.

Cost Tracking

The Control Panel tracks costs for all provisioned servers:

  • Per-server cost — monthly and hourly cost based on the server size
  • Total hosting cost — aggregated across all provisioned servers
  • Cost by provider — breakdown between Hetzner Cloud and DigitalOcean
  • Cost by region — see where your spending is concentrated

Cost data is available on the Hosting page and can be included in MSP client billing reports.

Server Lifecycle Management

Once provisioned, servers can be managed from the Hosting page:

Power Actions

  • Power On — start a stopped server
  • Power Off — gracefully shut down a server
  • Reboot — restart a running server

Resize

Change the server size (upgrade or downgrade) without re-provisioning. The server may need a restart depending on the provider.

Delete

Permanently delete a provisioned server. This removes the server from the hosting provider and deregisters the Cloud OS instance from the fleet.

Deleting a server is irreversible. All data on the server will be lost. Ensure you have backups before deleting.

Provisioned Server Integration

Servers provisioned through the Hosting page are automatically:

  • Registered as Cloud OS instances in the fleet
  • Visible on the Fleet Dashboard
  • Subject to fleet policies and governance rules
  • Included in cost tracking and MSP billing

This provides a seamless workflow from server provisioning to fleet management.

Next Steps