# CapRover

Deploy kogut on CapRover with HTTPS and a persistent volume.

The [CapRover](https://caprover.com) one-click app runs kogut behind CapRover's nginx,
with a persistent volume.

1. Open **Apps → One-Click Apps/Databases** and search for **kogut**.

2. Choose an app name and image version. `0.1` follows the current minor release.

3. Deploy, then open the app's **HTTP Settings**. Select **Enable HTTPS** and turn on
   **Force HTTPS** before you sign in.

4. Open `https://kogut.<your root domain>` and create your account with the setup token:
   search the app's log for `setup_token`.

## Configure the app

With a custom domain in **HTTP Settings**, set `KOGUT_URL` to its HTTPS URL in
**App Configs → Environmental Variables**; sign-in requires the configured origin. See
[Environment variables](https://docs.kogut.dev/reference/environment-variables/).

Put [`kogut.toml`](https://docs.kogut.dev/reference/configuration/) at `/data/kogut.toml` in the app's
volume. Add nginx's network range to `[server] trusted_proxies` to keep client addresses
for rate limits and visitor counts. See
[Client addresses behind a proxy](https://docs.kogut.dev/installation/caddy/#client-addresses-behind-a-proxy).

## Add a status domain

Connect a second domain to the app in **HTTP Settings**, enable HTTPS for it, and set it
in `kogut.toml`:

```toml title="kogut.toml"
[brand]
status_domain = "status.acme.com"
```

## Monitor the servers

[Install the agent](https://docs.kogut.dev/agent/installing/) on the CapRover server and its worker nodes
with the command from **Hosts → Add a server**.

If kogut runs on a server it monitors, that server's failure also stops its alerts. Use
a separate server or [kogut edge](https://docs.kogut.dev/high-availability/kogut-edge/).

## Update

Change the image tag in the app's **Deployment** tab and deploy. Redeploying `0.1` gets
the latest 0.1.x release. Read [Upgrading](https://docs.kogut.dev/installation/upgrading/) first.
