Kickstarter: install a whole site from one file
This page is for administrators who install the same site more than once, or on several servers. The setup wizard
asks for the database, the languages, the site package, the administrator and more. The Kickstarter takes all of those
answers from one file, kickstart.ini, so the same installation can be repeated with one command. Added on 12 July
2026 (34c17cdbbe). Full reference: Kickstarter CLI; this page is the short version.
Install in three steps
# 1. write kickstart.ini from the template (asks questions; --yes accepts defaults)
php bin/php/console exp:kickstarter ini
2. check the answers and the remote packages without changing anything
php bin/php/console exp:kickstarter run --dry-run
3. install (needs --force because it can drop the database)
php bin/php/console exp:kickstarter run --apply --forceSee the steps before you run them:
php bin/php/kickstarter.php run --list-stepsbin/php/kickstarter.php is the same program without the console.
Commands and options
Checked with ./console help exp:kickstarter on 6.0.15:
| Command | Options |
|---|---|
ini | --defaults (copy kickstart.ini-dist), --yes |
run | --start-step, --stop-step, --dry-run, --list-steps, --force |
help |
Every run is logged to var/log/kickstart.log with passwords masked. EXP_KICKSTART_LOG=0 turns the log off.
Things to know
Supported databases (Exponential 6.0.x), in order of preference: 1. SQLite 3 (the default) · 2. PostgreSQL · 3. MongoDB · 4. MariaDB · 5. Oracle · 6. MySQL. Microsoft SQL Server is known to be possible with additional work at this time. Details: Database support.
kickstart.iniis an example, not a default. Akickstart.iniin the root applied to every web setup and would have conflicted with a clean install. On 16 and 19 July (d0530e1deb,f9df1f6854) the file becamekickstart.ini--example, and the templatekickstart.ini-distgenerates yours. Keep your ownkickstart.iniout of version control: it holds the database password.- Remote packages can be tested.
--dry-rundownloads and checks the packages named by the site type into a package repository nameddryrun(kernel/setup/steps/ezstep_site_types.php) and stops beforeCreateSites, so the database is not written. - One progress line. The scripts use
expScriptStatus(renamed fromeZPMStatus), so the web setup and the console report progress the same way. - Local packages first. When a package exists in the installation, the site type step uses it instead of
downloading it (15 August,
28d414f422). - Siteaccess names. Whatever access type you choose (hostname, port or URL), the siteaccesses are named
siteandadmin(15 August,67e2abf9a3). Earlier runs produced names such as<identifier>_userthat did not exist. - More settings, such as the editor siteaccess, were added later; see the setup wizard page.
Related pages
- Install in one command: needs no
kickstart.ini - Clean install defaults
- ezpm package manager CLI: installs single packages
- A package installer that survives big packages
- Look inside a package, compare it with your site, import single items
- Default extension distribution
- Static cache generator
- Installer logs and seed data
- Behaviour changes of July and August 2026
- 6.0.15 changelog
- History: June 2026, second half, July 2026, August 2026
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.