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

The three installers, from a bundler's view

The setup wizard, the kickstarter and exp:install run the same install steps; what differs is where the answers come from. Which one a bundle should call, what each writes, how each guards against overwriting a site…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/bundlers/the-three-installers.md

On this page

The three installers, from a bundler's view

This page is for bundlers deciding how their bundle installs the site. Exponential has one installation sequence with three front ends. The reference is Chapter 4: Choosing an install method.

Contents

  1. One sequence, three front ends
  2. Side by side
  3. Which one your bundle calls
  4. What every installer writes
  5. Maintenance mode during the install

One sequence, three front ends

"Every install method runs the same sequence of step classes in kernel/setup/steps/, from Welcome to Final; CreateSites is the step that writes the database, the packages and the settings. The front ends differ only in where the answers come from" (One-click installers).

Front endStarted byAnswers from
Setup wizardopening the site in a browser while [SiteAccessSettings] CheckValidity=truebrowser forms (pre-filled by kickstart.ini if present)
Kickstarterphp bin/php/console exp:kickstarter run --apply or php bin/php/kickstarter.php run --applykickstart.ini in the installation root
Console installphp bin/php/console exp:install --apply or php bin/php/install.php --applycommand-line options, each with a default

Side by side

Setup wizardKickstarterexp:install
Needs a web server during the installyesnono
Dry runnorun --dry-run--dry-run, --print
Guard against overwritingstarts only while CheckValidity=true--force requiredrefuses an existing installation without --force
Logvar/log/setup.logsetup.log, kickstart.logsetup.log, var/log/exp-install-<date>.ini
Administrator passwordtyped in the formfrom the file; generated when empty or well knowngenerated unless an acceptable --password is given
Exit status for scriptsnot applicable0 or 1 (6.2.3)0 or 1 (7.7)

Source: 4.2 and the chapters linked.

Which one your bundle calls

BundleFront endWhy
Container image, CI, automated environmentsexp:install"It needs no file, validates its options before anything is written, and returns a non-zero exit status on every failure" (4.6)
Panel installerexp:installoptions map to the panel's form fields
Agency starter kit, several reviewed environmentsthe kickstarter"the reviewed kickstart.ini is the specification of the install"
Server image whose customer finishes the installthe setup wizard, pre-filled by kickstart.inithe customer chooses the site details in a browser
Shared hosting without shellthe setup wizard"it needs only a browser and FTP access" (4.5)

Details: Unattended install with exp:install, The kickstarter for bundles.

What every installer writes

All three end in CreateSites, "so they write the same things" (4.4):

WhereWhat
settings/override/site.ini.append.phpsiteaccess matching, site list, mail settings, ActiveExtensions from the site package
settings/siteaccess/site/, admin/, editor/ (and adminui/ when exp_adminui is present)per-siteaccess settings, including the database password
the databaseschema, base data, site package content
var/storage/packages/, var/storage/sqlite3/imported packages, the SQLite file
var/log/setup.log, var/log/initial-admin-passwordthe run's log; a generated password (mode 0600)

"The siteaccess directory names are always site, admin and editor"; what you choose is the match value (URL path, port or host). A bundle's documentation should say which addresses it configured.

Warning

Because the installers write secrets into settings/override/ and settings/siteaccess/, a bundle must never ship those directories filled from its build machine. Install at the recipient's first start (First boot and install once).

Maintenance mode during the install

"Every method switches maintenance mode on while it works": var/maintenance.json exists and the front controllers answer HTTP 503. After a failed step it stays on; php bin/php/maintenance.php off ends it. "A dry run does not switch it on" (4.4). A bundle's health check should treat 503 during first boot as "installing", not as "broken".

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