Servers & Automated Provisioning

Learn how TurboV connects, provisions, monitors, tags, and secures remote servers.


1. Connecting a Server

TurboV supports any virtual private server (VPS) or bare-metal machine running Ubuntu 20.04+, 22.04+, 24.04+, or Debian 11/12 on x86_64 or arm64.

Installation Command

In the TurboV dashboard:

  1. Navigate to Servers → Add Server.
  2. Specify a recognizable name (e.g. hetzner-fsn1-prod) and choose your cloud provider.
  3. Copy the generated installation command:
curl -sSL https://install.turbov.io | bash -s -- --token <SERVER_REGISTRATION_TOKEN>
  1. SSH into your host as root (or run with sudo) and execute the command.
Automated Infrastructure Orchestration

The installer supports unattended execution in cloud-init scripts, Terraform provisioning templates, or Ansible playbooks.


2. The 11-Step Provisioning Pipeline

Once the installer runs, the host communicates with the control plane through an authoritative 11-step state machine (ServerInfraStep). You can watch the real-time progress bar directly in the dashboard:

[START]
   │
   ▼
[CHECK_DOCKER_COMPATIBILITY] ──► Verifies Linux kernel, architecture, and cgroups v2
   │
   ▼
[INSTALL_DOCKER] ─────────────► Installs Docker Engine, containerd, and Compose plugins
   │
   ▼
[CONFIGURE_DOCKER] ───────────► Sets daemon options with log rotation & live-restore
   │
   ▼
[VERIFY_DOCKER] ──────────────► Probes Docker socket responsiveness via ping
   │
   ▼
[ENSURE_NETWORK] ─────────────► Creates isolated Docker bridge network: turbov
   │
   ▼
[PREPARE_TRAEFIK_DIRS] ───────► Creates /var/lib/turbov/traefik/ and dynamic/
   │
   ▼
[WRITE_TRAEFIK_CONFIG] ───────► Generates static traefik.yml and fallback container
   │
   ▼
[CHECK_PORT_CONFLICTS] ───────► Verifies host ports 80 and 443 are free
   │
   ▼
[START_TRAEFIK] ──────────────► Launches container 'turbov-traefik' (traefik:v3.3.4)
   │
   ▼
[VERIFY_TRAEFIK] ─────────────► Tests Traefik ping endpoint & verifies acme.json (0600)
   │
   ▼
[COMPLETED] ──────────────────► Server transitioned to status: ONLINE

3. Automated Swap Memory Management

Compiling modern applications during container builds can cause transient memory spikes. On entry-level VPS instances with 1GB or 2GB of RAM, this can trigger the Linux kernel Out-Of-Memory (OOM) killer.

To prevent build failures, the TurboV Agent includes an automated Swap Manager:

  • Detects physical host RAM upon initial setup.
  • If RAM is $\le 2\text$ and no existing swap is present, the agent automatically creates, formats, and activates a dedicated swap file (/swapfile).
  • Adds an entry to /etc/fstab to persist swap across host reboots.

You can verify swap status on your host at any time:

swapon --show
free -h

4. Hardware Telemetry & Monitoring

Every 30 seconds, the agent samples host metrics and streams telemetry to the control plane:

  • CPU Metrics: Model name, physical cores, logical threads, clock frequency, and current load percentage.
  • Memory: Total RAM, used RAM, cached RAM, and free memory.
  • Disk Storage: Total partition size, used gigabytes, and remaining storage on root / and /var/lib/turbov.
  • System Information: Hostname, OS distribution, kernel version, and CPU architecture (x86_64 or arm64).

Telemetry is displayed as interactive charts in the Server Overview tab in the dashboard.


5. Server Tags & Group Deployments

To manage multiple servers efficiently:

  1. Open Servers → Select your server → Settings.
  2. In the Tags section, add custom labels (e.g. gpu, worker-pool, europe-west, database-host).
  3. When configuring a service in an application, set the Deployment Target Mode to TAG_GROUP.
  4. The service will automatically deploy and scale across all servers sharing that tag.

6. Viewing Server Agent Logs in the Dashboard

You do not need to SSH into your server to inspect the agent daemon's operational logs:

  1. Open Servers → Select your server.
  2. Click View Agent Logs.
  3. A live modal displays the most recent 100 log lines streamed directly from the host systemd service, making troubleshooting provisioning issues or network drops instant.

7. Server Safe Mode

To protect production workloads during catastrophic host faults, TurboV features an automatic Safe Mode:

Triggers

  • The agent experiences 3 consecutive unrecoverable Docker daemon crashes.
  • Traefik fails to start repeatedly due to corrupted host firewall rules or fatal port conflicts.
  • Host storage exceeds 98% utilization.

Safe Mode Behavior

  • Server status transitions to SAFE_MODE.
  • All automated deployments, database provisioning, and auto-updates are paused on this server to prevent cascading failure.
  • Active containers continue running undisturbed.
  • Administrators receive an alert with diagnostic instructions.

Resolving Safe Mode

Once you address the underlying issue on the server (e.g. freeing disk space with docker system prune -af), click Resume Server in the dashboard to trigger an infrastructure health re-check.


8. Removing a Server

To decommission or migrate a server:

  1. Ensure all applications and databases have been migrated or terminated.
  2. In the dashboard, open Server Settings → Danger Zone → Delete Server.
  3. To cleanly purge TurboV components from the physical host, run:
    sudo systemctl stop turbov-agent
    sudo systemctl disable turbov-agent
    sudo rm -rf /opt/turbov /var/lib/turbov /etc/turbov /etc/systemd/system/turbov-agent.service
    sudo docker stop turbov-traefik turbov-fallback
    sudo docker rm turbov-traefik turbov-fallback
    sudo docker network rm turbov