An ExpressionEngine boilerplate that supports PHP dotenv to improve configuration management under git deployment like Laravel Forge. Laravel Mix is also added to handle asset compilation with complimentary plugin to handle asset versioning URL. Tailwind CSS is also added because it's super awesome and why the hell not.
- Composer
- PHP 7 or newer
- MySQL 5.6 or newer
- Node.JS / NPM
- Download this repository as zip and extract or run
composer create-project webteractive/expressionengine-env your-app
. - Run
composer install
to install dependency. This is optional if you use thecomposer create-project
way. - Import the
migration.sql
file to an empty database i.e. (mysql/mariadb:mysql -uuser -p theemptydb < path/to/migration.sql
). - Rename
.env.stub
toenv
and update the required keys. This is optional if you use thecomposer create-project
way. - Visit the Admin page to verify installation by going to
/admin.php
. The initial account isadmin
/secret2019
. Make sure to update the password!
A quick look at the top-level files and directories you'll see in a expressionengine-env project.
.
├── assets
├── node_modules
├── public
├── system
├── vendor
├── .env.stub
├── .gitignore
├── AUTHORS.md
├── composer.json
├── composer.lock
├── LICENSE.txt
├── Makefile
├── migration.sql
├── package-lock.json
├── package.json
├── README.md
├── tailwind.js
└── webpack.mix.js
The migration.sql
is an SQL dump file of a freshly installed ExpressionEngine with pre-installed mix plugin. Once you imported this file, you won't need to run the ExpressionEngine install process. All you need to do is login to the Admin (go to /admin.php
), add more configs and ultimately update the super secure password that has been initially provided.
All config keys that has been assigned to the env
helper method will not be changed via Admin. This is the key to not mess up your git on modifying configurations.
BASE_PATH
- the path where your ExpressionEngine files are located. This should be the directory where the system
can be found. This key is required.
BASE_URL
- the base URL of your ExpressionEngine instance. This key is required.
DB_NAME
- the database name. This key is required.
DB_USER
- the database user name. This key is required.
DB_PASSWORD
- the database user password. This key is required.
ENV
- the current environment of your ExpressionEngine install. The value should be local
for local development to enable LiveReload. Defaults to production
.
ERROR_VISIBILITY
- determines who can see PHP/MySQL errors when they occur. Defaults to 1
. See for more details on this config key.
A webpack.mix.js
file is also provided to get your started right away on bundling your assets. If you are familiar on how Laravel Mix works then this is no sweat to you! If this is your first encounter with Laravel Mix, visit https://laravel-mix.com/ for more details on how it works.
The assets
directory should house all your source assets. But if you like adventures then fire away, put it anywhere you like! Just remember, put your bundles inside the public
directory. See the sample entry in the webpack.mix.js
file for more details.
To start bundling, run npm run dev
to quick compile assets in development mode. To watch for changes, run npm run watch
. Whenever npm run watch
is fired, LiveReload is also enabled so your browser should be reloaded once a change in your assets is detected (after compilation). Run npm run prod
to compile for production.
A Makefile
is also provided that houses some shortcut commands if your OS (Linux and macOS) supports it. Run make dev
to start the development right, this will trigger npm run watch
. Run make prod
to compile for production.