This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is the official documentation for RoadRunner β a high-performance PHP application server and process manager written in Go. The docs are published via GitBook and cover all RoadRunner plugins, configuration, deployment, and integrations.
This is a pure Markdown documentation repo β there is no build system, no tests, and no application code.
SUMMARY.mdβ GitBook table of contents; must be updated when adding/removing/renaming pages.gitbook.yamlβ GitBook configuration pointing toREADME.mdandSUMMARY.md.markdownlint.jsonβ disables MD013 (line length) and MD034 (bare URLs)resources/β PSD source files for diagrams (not referenced directly by docs)
| Directory | Topic |
|---|---|
intro/ |
About, quick start, install, config, compatibility, contributing |
php/ |
PHP workers, pool, RPC, scaling, debugging, environment |
http/ |
HTTP plugin config, headers/CORS, static files, gzip, streaming |
grpc/ |
gRPC plugin, proto file registration |
queues/ |
Jobs plugin + per-driver docs (AMQP, Kafka, NATS, SQS, Beanstalk, BoltDB, Memory, Google Pub/Sub) |
kv/ |
KV plugin + per-driver docs (Redis, Memcached, BoltDB, Memory) |
plugins/ |
Other plugins: Centrifuge, Service, Server, Config, Locks, TCP |
lab/ |
Observability: OpenTelemetry, health checks, access logs, metrics, logger, Grafana dashboards |
workflow/ |
Temporal.io integration |
customization/ |
Building custom plugins, middleware, jobs drivers, embedding, events bus |
app-server/ |
Deployment: Docker, K8s+ArgoCD, Nginx, systemd, Lambda, CLI, production |
integration/ |
Framework integrations: Spiral, Laravel, Symfony, Yii, ChubbPHP, migration |
community-plugins/ |
Third-party plugins |
experimental/ |
Experimental features |
known-issues/ |
Known issues and error codes |
releases/ |
Release notes (one file per version) |
- GitBook directives are used throughout:
{% code title=".rr.yaml" %},{% endcode %},{% hint style="info" %},{% endhint %}, etc. Preserve these when editing. - YAML config examples use fenced code blocks with
yamllanguage tag, often annotated with a title:```yaml .rr.yaml - Cross-links use relative paths:
[text](../section/page.md) - Images are referenced via GitHub URLs (not local files)
Release notes live in releases/ with naming pattern v{year}-{major}-{patch}.md (e.g., v2025-1-10.md). The versioning scheme is CalVer: v{YYYY}.{major}.{patch}.
Format for release notes:
- Title:
# π v{version} π - Section per affected plugin:
### π¦ \{plugin}` plugin` - Core changes:
### π― Core - Each entry uses emoji prefixes: β¨ (feature), π (bug fix)
- Entries link to GitHub issues with
[FR](feature request) or[BUG]tags
When adding a release, also add its entry to SUMMARY.md under the π Releases section.
Commits follow this pattern:
chore: {description}β routine updates (releases, minor fixes)fix: {description}β corrections[#{issue}]: {description}β issue-linked changes