> ## Documentation Index
> Fetch the complete documentation index at: https://www.towbar.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Prepare a server

> Inspect prerequisites, install the supported runtime, and resolve setup failures.

Register and trust the [server](/docs/servers/register) first. Open its **Overview → Set up server** action or **Server Setup** page to start preparation. Workloads stay **Server Setup Pending** until setup succeeds.

## What preparation checks

The **Server Inspection** section tests the SSH connection, host identity, operating system, capacity, and permissions. **Prerequisites** installs or validates Docker Engine 29 or newer, Buildx, Caddy, `python3`, GNU `timeout`, and non-interactive access. Towbar checks for at least 1 GiB free under Docker's data directory; real workloads need additional headroom for images, build cache, and volumes.

The checklist updates as steps run. Expand a step for findings and bounded, redacted terminal output. A failed step stays available on **Server Setup** so you can correct the host and retry. Towbar reuses compatible software; it does not remove conflicting packages or replace an unmanaged Caddy binary. Use a fresh host when ownership of existing services is uncertain.

## After setup

Towbar queues a health check immediately. Verify the server's current state and capacity before deploying an app or resource. Re-run preparation after a Towbar upgrade when the server's Docker installation needs to meet newer requirements.

If SSH fails because the host key changed, return to [server registration](/docs/servers/register) and verify the new identity independently. A successful setup does not itself deploy a workload.
