β±οΈ Start Coding in 5 Minutes
1. Requirements
- Docker Engine v24+ (includes Compose v2)
- GNU Make – required to run project commands
- Git – for version control and cloning the repository
π₯οΈ Supported Platforms: macOS, Linux, and Windows (with WSL2). See Platform Notes for details.
2. Getting Started
β‘οΈ Looking to scaffold a new WordPress project, not just clone this StarterKit? See: Advanced Installation Options. You’ll generate your own repository with independent Git history and configuration β a clean foundation ready to customize and deploy.
π€ Using Claude Code? You can skip most of the manual steps below β see AI-Assisted Development for the automated bootstrap sequence.
Clone the repository:
git clone https://github.com/solidbunch/starter-kit-foundation.git my-project
Customize environment variables by editing the .env files in the config/environment/ folder:
.env.mainβ shared base config, editAPP_NAMEandAPP_TITLE.env.type.local,.env.type.dev,.env.type.stage,.env.type.prodβ environment-specific overrides, editAPP_DOMAINvariable.- You can create as many
.env.type.*files as needed (.env.type.qa,.env.type.stage2, etc.)
π Tip: We recommend using the
/srvfolder instead of/var/wwwfor your web content. This follows the Filesystem Hierarchy Standard (FHS), which suggests/srvfor site-specific data served by the system.
3. Install the Stack
make install [environment_type]
environment_type if omitted, defaults to local, it must match a file in config/environment/.env.type.*
What happens during installation
- If
.env.secretis missing, it is generated from a template .env.main,.env.type.[environment_type], and.env.secretare merged into root folder.envfile- Composer dependencies are installed (PHP), for both the root project and the theme, using the toolkit compose file’s
composercontainer β this step promptsAre you sure? (y/n):before it runs; answeryto continue - npm dependencies are installed and frontend assets are built in a single call (
npm run install-<APP_BUILD_MODE>), using the toolkit compose file’snodecontainer - Docker containers for the main project stack are pulled and started
- The database availability is checked
- WordPress is installed via WP-CLI: an admin user is created, all installed plugins are activated (
wp plugin activate --all), and permalinks are set to/%postname%/
β»οΈ Note You can safely re-run
make installat any time – it is idempotent.
Examples
β Install locally (most common scenario):
make install
This will use config/environment/.env.type.local.
Install using the production environment:
make install prod
This will use config/environment/.env.type.prod, applying values like APP_DOMAIN, APP_PROTOCOL, etc.
4. Post-Installation
β Once the installation is complete, your WordPress site is running inside Docker containers and ready to use.
The site domain is defined in the APP_DOMAIN variable inside your active .env.type.local file.
To make it work locally, you must add it to your /etc/hosts file:
127.0.0.1 myproject.local
π‘ Tip: Domains ending with
.localhostdo not require manual host mapping.
To open the site in your browser:
http://myproject.local
Or access the admin panel directly:
http://myproject.local/wp-admin
Login credentials are printed in the terminal during make install, and also stored in config/environment/.env.secret:
WP_ADMIN_USER=admin
WP_ADMIN_PASSWORD=...
Now you can start developing your theme and plugins, or customize the WordPress installation as needed.
π Security Note: The
.env.secretfile contains sensitive credentials and should not be committed to version control. It is generated automatically during installation and should be kept secure.π οΈ Tip: If you have any problems during installation, check the The Troubleshooting section for common issues and solutions.