# Vary Course

## Install and Start Via Server

Prepare an Ubuntu host, confirm Vary and Via are installed, install Via prerequisites, initialize the control plane, and verify the Via systemd services.

### Install

#### Verify Vary and Via commands

Confirm the host already has the Vary compiler and Via server CLI on PATH.

```bash
# Confirm the Vary compiler is installed and available on PATH.
command -v vary
vary --version

# Confirm the Via server CLI is installed and available on PATH.
command -v via
via --version

```

Run: `via --version`

Expected output:

```text
(?m)^Via\s+.+$
```

#### Install host prerequisites

Install Ubuntu packages for Git, Docker, Caddy, and the Via Docker network.

```bash
# Install Git, Docker, Caddy, and the Via Docker network.
via install --print-prereq-script | sudo bash

# Create Via users, directories, systemd units, and admin group access.
via install

```

Run: `via install`

Expected output:

```text
(?m)^\s*Installed changes applied$|^\s*Installed no changes \(already installed\)$
```

#### Initialize the control plane

Write server config, create the database, and mint signing keys.

```bash
# Write config, create the database, mint keys, and start Via services.
via init --domain vary.example.com

# Confirm the host layout, services, Docker, Git, and proxy are healthy.
via doctor

```

Run: `via doctor`

Expected output:

```text
(?m)^.*PASS.*$
```

### Verify

#### Verify Via services

Confirm the control plane, builder, runner, config server, test runner, and managed Caddy service are active.

```bash
# Show every Via service and whether it is active.
via status

# Re-run the full host and runtime health checks after startup.
via doctor

```

Run: `via status`

Expected output:

```text
(?m)\bactive\b
```

