Skip to content

Latest commit

 

History

History
84 lines (62 loc) · 2.61 KB

File metadata and controls

84 lines (62 loc) · 2.61 KB

Install runbook

A deterministic install of the local (laptop) shape, written for a coding agent operating a shell on the target machine. Humans are welcome too — the narrative version is docs/full-local.md, and remote shapes are covered by deploy/README.md.

Rules: run the steps in order; after each step run its verification exactly; if a verification fails, stop and report the failing step with its command output — do not improvise a fix or continue.

1. Preconditions

docker info --format '{{.ServerVersion}}'
docker compose version

Verification: both commands succeed. If either fails, stop — Docker with the Compose plugin is the one prerequisite, and installing it is the operator's call, not yours.

2. Install

curl -fsSL https://druks.ai/install.sh | bash

Verification: the command exits 0 and ends with docker compose up -d output followed by a message that the stack is up. ~/druks now contains druks.toml, .env, and compose.yaml.

3. Services are up

cd ~/druks
docker compose ps
curl -fsS http://127.0.0.1:8001/health

Verification: web, postgres, redis, and drukbox are running (none restarting), and the health endpoint returns {"status":"ok"}.

4. Preflight

cd ~/druks
docker compose exec web druks doctor

Verification: druks doctor exits 0. Every genuine-health check passes; the Claude, Codex, and GitHub checks show as pending () — the operator clears those in the browser, which no shell step can do, so they never fail the command. A non-zero exit means a genuine fault: stop and report it.

5. Hand back to the operator

Report that druks is installed and tell the operator to finish in the dashboard at http://127.0.0.1:8001: Settings → Harnesses connects Claude and Codex (agent runs refuse to start on an unconnected harness) and the GitHub App druks acts as. Then docker compose exec web druks doctor --sandbox proves the full sandbox path with a real container.

Local customizations

Put host-local Docker Compose changes in ~/druks/compose.override.yaml. Add local services, service overrides, and named volumes there. install.sh creates this file once and never changes it. Your changes survive every install and upgrade.

install.sh refreshes the repo compose files on each run. Do not edit compose.yaml or compose.docker-sbx.yaml. The next install overwrites these files.

Example — bake locally-installed apps into the web image:

services:
  web:
    image: druks-with-apps
    build: ./appimage

Apply a change with docker compose up -d from ~/druks.