CLI tool for creating new Evolution CMS projects.
Install globally using Composer:
composer global require evolution-cms/installerImportant: After installation, make sure the Composer global bin directory is in your system PATH so the evo command is accessible from anywhere.
Add to your shell configuration file (~/.bashrc, ~/.zshrc, or ~/.profile):
export PATH="$HOME/.composer/vendor/bin:$PATH"
# or for newer Composer installations:
export PATH="$HOME/.config/composer/vendor/bin:$PATH"Then reload your shell configuration:
source ~/.bashrc # or source ~/.zshrc-
Find your Composer global directory (usually
C:\Users\YourName\AppData\Roaming\Composer\vendor\bin) -
Add it to your system PATH:
- Press
Win + R, typesysdm.cpl, press Enter - Go to "Advanced" tab → "Environment Variables"
- Under "System variables", find
Pathand click "Edit" - Add the Composer bin directory path
- Click "OK" to save
- Press
-
Restart your terminal/command prompt
After setting up PATH, verify the installation:
evo --versionIf you see the version, installation was successful!
evo new my-projectThis command will:
- Validate PHP version compatibility
- Prompt you for database configuration (with connection testing)
- Prompt you for admin user credentials and directory
- Prompt you for installation language
- Download and install Evolution CMS (latest compatible version or from specific branch)
- Configure the database connection
- Run migrations and seeders
- Create the admin user
evo new my-project --preset=evolution
evo new my-project --db-type=mysql
evo new my-project --db-host=localhost --db-name=evo_db
evo new my-project --admin-username=admin --admin-email=admin@example.com
evo new my-project --admin-directory=manager
evo new my-project --language=en
evo new my-project --branch=develop # Install from specific Git branch
evo new my-project --git # Initialize a Git repository
evo new my-project --force # Force install even if directory exists--preset: The preset to use (default:evolution)--db-type: Database type (mysql,pgsql,sqlite, orsqlsrv)--db-host: Database host (default:localhost, not used for SQLite)--db-port: Database port (defaults: 3306 for MySQL, 5432 for PostgreSQL, 1433 for SQL Server)--db-name: Database name (for SQLite: path to database file, default:database.sqlite)--db-user: Database user (not used for SQLite)--db-password: Database password (not used for SQLite)--admin-username: Admin username--admin-email: Admin email--admin-password: Admin password--admin-directory: Admin directory name (default:manager)--language: Installation language (default:en)--branch: Install from specific Git branch (e.g.,develop,nightly,main) instead of latest release--git: Initialize a Git repository and create initial commit--force: Force install even if directory exists
Standard Evolution CMS installation with all core features.
evo new my-project
# or
evo new my-project --preset=evolutionYou can create custom presets by extending the Preset class. See the src/Presets/ directory for examples.
- PHP Compatibility Check: Automatically finds the latest Evolution CMS version compatible with your PHP version
- Version Validation: Validates PHP version requirements before installation starts
- Smart Version Selection: Checks GitHub releases and composer.json requirements to determine compatibility
- Latest Compatible Version: Always installs the newest version that works with your PHP setup
- Branch Installation: Install from specific Git branches (develop, nightly, main) for development or testing
- Multiple Database Support: Supports MySQL/MariaDB, PostgreSQL, SQLite, and SQL Server
- Automatic Port Detection: Automatically uses correct default ports (3306 for MySQL, 5432 for PostgreSQL, 1433 for SQL Server)
- Connection Testing: Tests database connection before proceeding with installation, with retry option
- Collation Resolution: Intelligently handles database collations, including those not in the server's collation list
- Install Type Detection: Automatically detects if this is a fresh install or an update
- Secure Configuration: Creates database config files with proper permissions (read-only)
This installer incorporates best practices from the Evolution CMS Docker implementation, including:
- Database configuration file generation
- Install type detection
- Proper handling of MySQL and PostgreSQL differences
- PHP 8.3+
- Composer
- Database: MySQL 5.7+ / MariaDB 10.3+, PostgreSQL 10.0+, SQLite 3.26.0+, or SQL Server 2017+
git clone https://github.com/evolution-cms/installer.git
cd installer
composer installInstall dependencies first:
composer installThen run tests:
composer testRun tests with coverage:
composer test-coverageNote: Code coverage requires either Xdebug or PCOV PHP extension to be installed:
- Xdebug:
pecl install xdebugor install via your OS package manager - PCOV:
pecl install pcov(faster alternative to Xdebug for coverage only)
After installing, restart PHP-FPM or your web server.
The old install.php file is still available in this repository for backward compatibility and quick installations.
GPL-3.0-or-later
Contributions are welcome! Please feel free to submit a Pull Request.
- Documentation: https://docs.evo.im
- Issues: https://github.com/evolution-cms/installer/issues
- Community: https://t.me/evolutioncms