Blog Sections Open
evo.sh: A One-Command Evolution CMS 3 Installer Prototype
An ecosystem archive post about an early shell-script installer prototype for Evolution CMS 3.
Before the newer portable installers and CLI tooling matured, there was a simpler experimental step in the same direction: a shell script intended to install Evolution CMS 3 in one command. That made this post a useful missing link in the tooling timeline.
What makes the gist worth preserving is not only the idea of a one-command bootstrap, but the concrete flow it captured: create the project through Composer, run the CLI installer, generate the main package, point the controller namespace at it, and switch the default editor right away.
Why this prototype matters historically
- it showed the demand for repeatable local and server-side setup
- it pointed toward automation-friendly Evo installation workflows
- it anticipated later work on portable installers and better bootstrap tooling
Core script pattern
#!/bin/bash
EVO_VERSION="3.x-dev"
INSTALL_TYPE=1
DATABASE_TYPE="mysql"
DATABASE_SERVER="localhost"
DATABASE_NAME="DB"
DATABASE_USER="USER"
DATABASE_PASS="PASS"
DATABASE_PREFIX="evo_"
ADMIN_LOGIN="admin"
ADMIN_EMAIL="emaill@gmail.com"
ADMIN_PASS="pass"
LANGUAGE="ru"
REMOVE_INSTALL="y"
MAIN_PACKAGE_NAME="main"
rm -rf {,.[!.],..?}*
composer create-project evolutioncms/evolution:$EVO_VERSION . --remove-vcs
cd install/
php cli-install.php --typeInstall=$INSTALL_TYPE --databaseType=$DATABASE_TYPE --databaseServer=$DATABASE_SERVER --database=$DATABASE_NAME --databaseUser=$DATABASE_USER --databasePassword=$DATABASE_PASS --tablePrefix=$DATABASE_PREFIX --cmsAdmin=$ADMIN_LOGIN --cmsAdminEmail=$ADMIN_EMAIL --cmsPassword=$ADMIN_PASS --language=$LANGUAGE --removeInstall=$REMOVE_INSTALL
cd ../core/
php artisan package:create $MAIN_PACKAGE_NAME
echo '<?php return "EvolutionCMS\\$MAIN_PACKAGE_NAME\\Controllers\\";' > custom/config/cms/settings/ControllerNamespace.php
php artisan extras extras TinyMCE5 master
echo '<?php return "TinyMCE5";' > custom/config/cms/settings/which_editor.phpWhat to treat with caution
- the original gist used placeholder credentials that must be replaced before use
rm -rf {,.[[.],..?}*is destructive and only belongs in the correct project directory- the script targeted an early Evo 3 development branch, so it is better read as historical tooling guidance than as a copy-paste production installer
Even if teams no longer use the exact script, the idea behind it is still relevant: installation should be scriptable, reproducible, and easy to fit into deployment or CI-oriented flows.
Source: Telegram post. Gist: evo.sh.
start-evo3: A Demo Site on Controllers for Evolution CMS 3
An ecosystem note about the start-evo3 demo site and why controller-based examples mattered for the early Evolution CMS 3 learning curve.
Nested Containers in PageBuilder for Evolution CMS
An ecosystem post about early nested-container work in PageBuilder for Evolution CMS and why it mattered for layout flexibility.