Help / Servers & operations

Provisioning lifecycle

PENDING_PAYMENT → PROVISIONING → INSTALLING → ACTIVE in under 60 seconds.

From paid order to working dialer in under 60 seconds. Each step is a transition in the server state machine; every transition writes an audit-log row.

Step by step

  1. PENDING_PAYMENT — order paid, server row created. Customer sees "Provisioning" banner.

  2. PROVISIONING — the cloud platform allocates the VPS and cloud-init writes a server-id marker so the deploy worker can identify it. (~30s)

  3. The orchestrator polls until the VPS is running, reads the public IPv4, and creates a Cloudflare A record for the FQDN.

  4. INSTALLING — control passes to the Python deploy worker. It SSHes in, runs the VICIdial install script, requests a Let's Encrypt cert via DNS-01, and configures Apache/Nginx. (~5–6 min)

  5. Python posts a result back. On success: ACTIVE, send "your server is ready" email with the admin URL.

Failure modes

Any step can transition to FAILED. Provisioning failures within 1 hour of payment trigger the auto-refund. Installation failures get an admin alert; we usually retry from the admin panel.

Tags: provisioning, lifecycle, state-machine

Provisioning lifecycle · VICIfast