Skip to main content

The stack behind it

BookStack is a PHP web application, so the box runs a fairly classic web stack:

Docs-Server (10.100.100.3)
  nginx           (:80)  - serves the app, fronted by HAProxy -> docs.example.com
  PHP             - the BookStack application itself
  MariaDB         (:3306, local) - stores the content

Nothing exotic: a web server, an application runtime, and a database, all on one VM. nginx handles HTTP, PHP runs BookStack, MariaDB holds the actual pages. HAProxy at the edge publishes it as https://docs.example.com with TLS — BookStack itself just speaks HTTP, like every other internal service.

It's a useful example precisely because it's a conventional LAMP-ish stack — the same shape as countless real web apps. If you understand how this box is wired, you understand how a huge fraction of the web's applications are deployed.

Why we use this: there's teaching value in running at least one "boring" three-tier web app by hand. The reverse-proxy → app-runtime → database pattern is everywhere, and meeting it in a small, legible form makes the big production versions far less mysterious.

Diagram

A classic web stack: proxy -> web server -> app -> database