Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,075 of 9,075 pages
About the help in other languages
All help pages

A hosting decision record

For project managers and architects in public bodies who must document how an Exponential site is hosted. A decision record template with every choice the software asks for, the options and where each option is…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/government/operations/hosting/hosting-decision-record.md

On this page

A hosting decision record

This page is for project managers, architects and IT leads in public bodies who must write down how a site is hosted and why, for a change advisory board, an audit, a procurement file or the team that takes over later. It gives a decision record template with every choice Exponential asks for, the options the sources support and where each is explained. Fill it in once per site and keep it with the site's documentation. The hosting companies' version is in Choosing a web server and Choosing a hosting model.

Contents

  1. How to use the template
  2. The template
  3. Facts to collect from the running site
  4. Keeping it current
  5. Checklist

How to use the template

  • One record per site (or per installation serving several sites).
  • Each row: the decision, the reason, and the risk you accept. "We chose X because our database team runs X" is a perfectly good reason.
  • Write team names, not people's names, so the record does not age with staff changes.
  • Name figures only when you measured or decided them; mark assumptions as "example assumption".

The template

DecisionOptions in the sourcesOur choiceReasonAccepted riskRead
Hosting location and modelown data center; government or sovereign cloud; virtual machine; containers; Kubernetes (tier 3); managed hostingOn-premise hosting, Government and sovereign cloud hosting
Operating systemtier 1 or 2 recommendedOperating system support
PHP version8.0 or later, Velocity includedPHP versions and extensions
Database1. SQLite 3 · 2. PostgreSQL · 3. MongoDB · 4. MariaDB · 5. Oracle · 6. MySQLChoosing a database in the official order
Web server or engineVelocity (recommended); FrankenPHP; Apache or nginx with PHP-FPMWeb server choices
TLS terminationthe engine; the web server; a central proxyTLS and HTTPS
Administration accessown host name; network restriction; VPNSeparating the administration from the public site
Environmentsdevelopment, test, production with EXP_ENVEnvironments for development, test and production
Configuration controlversion control; ManagedByDeploymentConfiguration under version control
Number of web serversone; several behind a load balancerHigh availability overview
Caches in front of PHPVelocity response cache; HTTP cache; static cache (ships off)Velocity response cache and HTTP cache
Backupswhat, how often, where, how longWhat to back up
Recovery objectivesRPO and RTO as decided by the organizationRPO and RTO as decisions
Mailsendmail, SMTP, file (test)Mail delivery
Searchbuilt-in; Solr through ezfindSearch backends
Data locationinventory of every place data is keptData location and what is stored where
Active extensions contacting third partiesnone, or listed and justifiedPrivacy standards
Monitoringexternal uptime check; internal status commandsHealth checks and uptime

Facts to collect from the running site

Attach these outputs to the record; they show what really runs, not what was planned:

php -v | head -1
./console exp:velocity ext check --allow-root-user
./console exp:system:info --json --allow-root-user > system-info.json
grep -rn "DatabaseImplementation" settings/override settings/siteaccess/*/site.ini.append.php
./console exp:cache status --allow-root-user

exp:system:info prints the facts and health checks of Setup > System information (Sizing memory, CPU and disk). Review the JSON before you file it outside the IT team; it describes your server in detail. The page's support report is built to leave out what should not be shared (System information).

Keeping it current

Update the record with every change that touches a row: a new PHP version, a database move, a second web server, a new extension that contacts a third party. A change request that does not mention the record is a hint that the record is out of date. Review it at least once a year, together with the recovery decisions and a restore test.

Checklist

  • To do: Every row has a choice, a reason and an accepted risk.
  • To do: The facts from the running site are attached and match the choices.
  • To do: The record names teams, not people.
  • To do: It is filed where the change board and auditors find it.
  • To do: A review date is set.

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x