# Runbook: start Gerhard on Omega13

## Preconditions

Expected side-by-side layout:

```text
~/Projects/Agent0
~/Projects/gutasktool
```

Local `.env` exists in `Agent0` and contains non-committed credentials:

- `API_URL`
- `CONTENT_API_KEY`
- `AGENT_ID`
- `AGENT_NAME`
- `AGENT_PASSWORD`
- model provider keys as needed

SSH config/keys on the host can push to Gitea if Gerhard is expected to push repository changes.

## Pull latest

```bash
cd ~/Projects/Agent0
git pull --ff-only
cd ../gutasktool
git pull --ff-only
```

## Start Gerhard first

```bash
cd ~/Projects/Agent0
docker compose up -d gerhard gerhard-dashboard
```

## Validate

```bash
docker compose ps gerhard gerhard-dashboard
docker logs gerhard --tail=100
docker logs gerhard-dashboard --tail=100
```

Check gutask wrapper:

```bash
docker compose exec gerhard /opt/data/bin/gutask --help
docker compose exec gerhard /opt/data/bin/gutask orient --agent "$AGENT_ID"
```

Check shared knowledge mount:

```bash
docker compose exec gerhard test -f /knowledge/README.md
```

## Dashboard

Gerhard dashboard should be reachable from Omega13 at:

```text
http://localhost:50007
```

## Then tunnel and rest

Only after Gerhard is stable:

```bash
docker compose up -d glitch-tunnel
docker compose up -d
```
