Skip to content

egantz/bedrock

 
 

Repository files navigation

Packagist Build Status

Bedrock is a modern WordPress stack that helps you get started with the best development tools and project structure.

Much of the philosophy behind Bedrock is inspired by the Twelve-Factor App methodology including the WordPress specific version.

Features

  • Better folder structure
  • Dependency management with Composer
  • Easy WordPress configuration with environment specific files
  • Environment variables with Dotenv
  • Autoloader for mu-plugins (use regular plugins as mu-plugins)
  • Enhanced security (separated web root and secure passwords with wp-password-bcrypt)

Use Trellis for additional features:

  • Easy development environments with Vagrant
  • Easy server provisioning with Ansible (Ubuntu 16.04, PHP 7.1, MariaDB)
  • One-command deploys

See a complete working example in the roots-example-project.com repo.

Requirements

Installation

  1. Create a new project in a new folder for your project:

composer create-project roots/bedrock your-project-folder-name

  1. Update environment variables in .env file:
  • DB_NAME - Database name
  • DB_USER - Database user
  • DB_PASSWORD - Database password
  • DB_HOST - Database host
  • WP_ENV - Set to environment (development, staging, production)
  • WP_HOME - Full URL to WordPress home (http://example.com)
  • WP_SITEURL - Full URL to WordPress including subdirectory (http://example.com/wp)
  • AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY, AUTH_SALT, SECURE_AUTH_SALT, LOGGED_IN_SALT, NONCE_SALT

If you want to automatically generate the security keys (assuming you have wp-cli installed locally) you can use the very handy wp-cli-dotenv-command:

  wp package install aaemnnosttv/wp-cli-dotenv-command

  wp dotenv salts regenerate

Or, you can cut and paste from the Roots WordPress Salt Generator.

  1. Add theme(s) in web/app/themes as you would for a normal WordPress site.

  2. Set your site vhost document root to /path/to/site/web/ (/path/to/site/current/web/ if using deploys)

  3. Access WP admin at http://example.com/wp/wp-admin

Deploys

There are two methods to deploy Bedrock sites out of the box:

Any other deployment method can be used as well with one requirement:

composer install must be run as part of the deploy process.

Documentation

Bedrock documentation is available at https://roots.io/bedrock/docs/.

Contributing

Contributions are welcome from everyone. We have contributing guidelines to help you get started.

Community

Keep track of development and community news.

About

WordPress boilerplate with modern development tools, easier configuration, and an improved folder structure

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%