This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
# DevRunbook
|
||||
|
||||
DevRunbook is a self-hosted platform for turning development intent into
|
||||
structured, reusable and verifiable tasks for coding agents such as Codex. It
|
||||
combines a reviewed playbook, repository context, risk controls and validation
|
||||
requirements into a deterministic prompt or multi-file Run Pack.
|
||||
|
||||
The platform helps developers stop rewriting the same instructions while
|
||||
keeping scope, provenance and evidence visible. It does **not** execute
|
||||
repository commands or write to your Git forge.
|
||||
|
||||
## What users can do
|
||||
|
||||
- Browse and search 28 built-in, versioned development playbooks.
|
||||
- Create reusable repository profiles with commands, protected paths and policies.
|
||||
- Compose tasks in a guided Simple flow or a detailed Expert flow.
|
||||
- Inspect compatibility, provenance, guardrails and prompt-lint results before generation.
|
||||
- Save immutable generated tasks and export exact Markdown or verified Run Pack archives.
|
||||
- Connect Gitea read-only to import bounded repository evidence while retaining useful local state during an outage.
|
||||
- Author and review private playbooks in Prompt Lab without making draft claims look validated.
|
||||
|
||||
The interface supports Dutch and English presentation, keyboard navigation,
|
||||
reduced motion, light/dark themes and responsive desktop/mobile layouts.
|
||||
|
||||
## Quick start with Docker Compose
|
||||
|
||||
Requirements:
|
||||
|
||||
- Docker Engine with Docker Compose 2.40 or newer;
|
||||
- a release checkout of this repository;
|
||||
- four independently generated secrets.
|
||||
|
||||
```sh
|
||||
cp .env.example .env
|
||||
chmod 600 .env
|
||||
|
||||
openssl rand -hex 24 # POSTGRES_PASSWORD
|
||||
openssl rand -hex 32 # SESSION_SECRET
|
||||
openssl rand -base64 32 # INTEGRATION_ENCRYPTION_KEY
|
||||
openssl rand -hex 24 # BOOTSTRAP_TOKEN
|
||||
```
|
||||
|
||||
Place those values in `.env`, set `PUBLIC_BASE_URL`, then start the stack:
|
||||
|
||||
```sh
|
||||
docker compose -p devrunbook --env-file .env build
|
||||
docker compose -p devrunbook --env-file .env up -d
|
||||
docker compose -p devrunbook --env-file .env ps
|
||||
```
|
||||
|
||||
Open `PUBLIC_BASE_URL/setup`, enter the bootstrap token and create the first
|
||||
owner. The setup route closes after successful initialization. Keep public
|
||||
registration closed unless you deliberately configure an invitation workflow.
|
||||
|
||||
Health endpoints:
|
||||
|
||||
```sh
|
||||
curl --fail http://127.0.0.1:3000/health/live
|
||||
curl --fail http://127.0.0.1:3000/health/ready
|
||||
```
|
||||
|
||||
For production upgrades, backups, restores, Unraid and reverse-proxy guidance,
|
||||
read the [operator guide](docs/operator-guide.md). Do not publish PostgreSQL,
|
||||
mount the Docker socket or weaken the default Gitea network policy. The
|
||||
reference stack binds its HTTP port to host loopback; terminate public HTTPS at
|
||||
a maintained reverse proxy on the same host or adjust the binding deliberately.
|
||||
|
||||
## Local development
|
||||
|
||||
DevRunbook requires Node.js 24, pnpm 10.33.0 and Python 3 for the specification
|
||||
contracts. PostgreSQL is required for integration tests and a complete local
|
||||
application flow.
|
||||
|
||||
```sh
|
||||
corepack enable
|
||||
pnpm install --frozen-lockfile
|
||||
python3 scripts/validate_pack.py
|
||||
python3 scripts/reference_compose.py --check
|
||||
pnpm verify
|
||||
pnpm test:security
|
||||
```
|
||||
|
||||
`pnpm verify` runs formatting, linting, strict type checks, unit tests,
|
||||
specification/golden-fixture validation and production builds. See
|
||||
[`docs/15-test-strategy.md`](docs/15-test-strategy.md) for integration,
|
||||
Playwright, clean-room and release gates.
|
||||
|
||||
## Architecture and safety
|
||||
|
||||
DevRunbook is a TypeScript modular monolith with separate web and worker roles
|
||||
and PostgreSQL as its only required data service. Important boundaries include:
|
||||
|
||||
- generated runs and published playbook versions are immutable snapshots;
|
||||
- imported repository text is untrusted evidence, never governing instruction;
|
||||
- templates and conditions use restricted, non-executable data models;
|
||||
- archives are bounded, inventoried and verified without unsafe extraction;
|
||||
- workspace authorization is enforced server-side for every private resource;
|
||||
- Gitea tokens are encrypted at rest and the first integration is read-only;
|
||||
- default containers run non-root with read-only roots, dropped capabilities and no Docker socket.
|
||||
|
||||
Start with the [product vision](docs/00-product-vision.md),
|
||||
[technical architecture](docs/06-technical-architecture.md) and
|
||||
[security threat model](docs/13-security-privacy-threat-model.md). Contributors
|
||||
should also read [`AGENTS.md`](AGENTS.md) and [`CONTRIBUTING.md`](CONTRIBUTING.md).
|
||||
|
||||
## Project status
|
||||
|
||||
The implemented release candidate covers the core library, repository profiles,
|
||||
deterministic composition, exports, read-only Gitea intelligence, Prompt Lab,
|
||||
operations, localization and accessibility hardening. Detailed evidence is in
|
||||
[`CURRENT_STATE.md`](CURRENT_STATE.md) and
|
||||
[`docs/19-acceptance-criteria.md`](docs/19-acceptance-criteria.md).
|
||||
|
||||
Direct code execution, forge writes, a public marketplace, billing, Kubernetes
|
||||
as a required deployment and vector search remain deliberately out of scope.
|
||||
|
||||
The application and Unraid icons were created for this project; their source
|
||||
and licensing are recorded in [the asset notice](docs/ASSET_PROVENANCE.md).
|
||||
|
||||
`BUILD_PACK.json`, `FILE_INDEX.txt`, `PACK_MANIFEST.sha256` and the version 1.2
|
||||
documents describe the historical implementation-contract pack from which the
|
||||
0.1 application was built. They are not the current application version or a
|
||||
release manifest. See [publication readiness](docs/PUBLICATION_READINESS.md)
|
||||
for the remaining owner-controlled launch decisions.
|
||||
|
||||
## License and security
|
||||
|
||||
DevRunbook is available under the [MIT License](LICENSE). Please report
|
||||
vulnerabilities through the private channel described in
|
||||
[`SECURITY.md`](SECURITY.md); do not post tokens, private repository contents or
|
||||
exploit details in a public issue.
|
||||
Reference in New Issue
Block a user