Welcome to the BBSEngine documentation handbook. This is the central
repository for all technical documentation, specifications, and
guides related to the BBSEngine project.
/engine/router.php operation and post-mortemsThe canonical design specs live in specs/. Each
subsystem has one document; ADRs and end-to-end flows have their
own:
l_<loginid> / m_<moniker> rolesio.echo f-string rule, JSONBbbsengine6.message (Phase 11 layered package)bbsengine6.net (transport, packets, registry)bbsengine6.module registry / plugin loader.tmpl converterhandbook/
├── index.md # this file
├── QUICKSTART.md # five-minute first-run
├── SECURITY.md # security overview + audit links
├── ROUTER.md # /engine/router.php operation
├── specs/ # per-subsystem design specs
│ ├── index.md # spec directory TOC
│ ├── architecture.md
│ ├── decisions.md
│ ├── dependencies.md
│ ├── flows.md
│ ├── database.md
│ ├── util.md
│ ├── member.md
│ ├── auth-bank.md
│ ├── pg-ident-auth.md
│ ├── bestpractices.md
│ ├── messaging.md
│ ├── net-layer.md
│ ├── console.md
│ ├── module.md
│ ├── listbox.md
│ ├── blurb.md
│ ├── folder.md
│ ├── bottombar.md
│ └── md2tpl.md
└── modules.md # placeholder; content forthcoming
The handbook is written in plain Markdown. Chapters are rendered
at request time by engine/router.php via the shared
\bbsengine6\markdown\parseDocument primitive (matching teos's
teospath path). The handbook Makefile stage target rsyncs
the .md tree to WWWSTAGE/handbook/<v>/, where Apache +
mod_php + the rewrite in www/org/htaccess-prod route every
/handbook/<v>/... request to /engine/router.php for read-time
rendering (raw .md URLs go through /engine/router.php's
rawmarkdown handler, which streams the file as text/plain via
\bbsengine6\markdown\serveRawMarkdown() against TEOSDIR). The router detects the
/handbook/<v>/ URI prefix (canonicalized from $_SERVER['REQUEST_URI'],
unconditional since 2026-10-02 — see ROUTER.md),
sets TEOSDIR to the matching version tree, and dispatches
handleMarkdown for chapters, handleFolder for directories, and
handleIndex for the bare version URL. The bare version URL
(/handbook/<v>/) is matched by an explicit htaccess rule that forwards
it to the router with empty ?uri= so handleIndex probes the
index.md chapter. The make convert-tmpl developer helper converts
chapters into Smarty .tmpl snippets for embedding inside
other templates (e.g. chapter summaries on the org-site
front page).
When adding new documentation:
specs/index.md and theDocumentation is best viewed through the web interface at:
https://bbsengine.org/handbook/Or read the Markdown files directly on GitHub.
For questions about documentation or to suggest improvements: