7. Deployment view¶
Standard deployment¶
flowchart TB
subgraph Client
Browser[Browser]
end
subgraph ApplicationHost[Application host]
TLS[Web server / TLS]
PHP[PHP runtime]
Files[MRBS web files and config]
TLS --> PHP
PHP --> Files
end
subgraph DatabaseHost[Database host]
Database[(MySQL/MariaDB or PostgreSQL)]
end
subgraph External[Optional external services]
IdP[LDAP / CAS / SAML / CMS]
SMTP[SMTP or local MTA]
end
Browser -->|HTTPS| TLS
PHP -->|PDO| Database
PHP -->|secured protocol| IdP
PHP -->|SMTP or process| SMTP
The web server exposes the contents of the release's web/ directory. The
operator creates web/config.inc.php, which is local, secret, and excluded
from source control.
Nodes¶
| Node | Deployed artifacts | State |
|---|---|---|
| Browser | HTML, CSS, JavaScript, downloads | Cookies and local UI preferences |
| Web/PHP host | MRBS PHP, assets, local configuration, optional themes | Configuration, logs, possibly file sessions |
| Database host | MRBS schema and records | Bookings, resources, users, variables, sessions |
| Identity provider | External service | Accounts, credentials, roles, attributes |
| Mail transport | External or local service | Queue and delivery state |
Clustered deployment¶
Multiple PHP/web nodes can serve the same installation if they share:
- one consistent MRBS code and configuration version;
- one database;
- a session strategy suitable for multiple nodes;
- consistent timezone, locale, and PHP extensions; and
- shared or externally delivered mail behavior.
Database-backed session handling is preferable to node-local files where the database supports the required locking behavior.
Trust boundaries¶
flowchart LR
Internet((Untrusted network)) -->|HTTPS boundary| Web[Web tier]
Web -->|credential boundary| IdP[Identity provider]
Web -->|data boundary| DB[(Database)]
Web -->|message boundary| Mail[Mail service]
Terminate TLS at a trusted proxy or web server, preserve the correct client and scheme information, and restrict direct access to PHP and database nodes.
Operational files¶
Do not publish the repository root, database scripts, backups, test utilities, or generated logs. Only the intended application directory belongs behind the web server.