This is Pantheon's recommended starting point for forking new WordPress upstreams that work with the Platform's Integrated Composer build process. It is intended to be the Platform's standard WordPress with Composer upstream.
Unlike with other Pantheon upstreams, the WordPress core install, which you are unlikely to adjust while building sites, is not in the main branch of the repository. Instead, it is referenced as dependencies within Roots/Bedrock that are installed by Composer.
This tool is an early stage, proof-of-concept and is not recommended for use on production sites. A previous iteration of this proof-of-concept can be found here.
A modern WordPress stack
Website
Documentation
Releases
Support
Bedrock is an open source project and completely free to use.
However, the amount of effort needed to maintain and develop new features and products within the Roots ecosystem is not sustainable without proper financial backing. If you have the capability, please consider sponsoring Roots.
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.
- 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)
- PHP >= 7.4
- Composer - Install
- Create a new project:
By default, this installs the
$ composer create-project roots/bedrock
dist
version of all dependent packages. To install thesource
versions instead, updatecomposer.json
as follows:"preferred-install": { "roots/wordpress-no-content": "dist", "*": "source" },
- Update environment variables in the
.env
file. Wrap values that may contain non-alphanumeric characters with quotes, or they may be incorrectly parsed.
- Database variables
DB_NAME
- Database nameDB_USER
- Database userDB_PASSWORD
- Database passwordDB_HOST
- Database host- Optionally, you can define
DATABASE_URL
for using a DSN instead of using the variables above (e.g.mysql://user:password@127.0.0.1:3306/db_name
)
WP_ENV
- Set to environment (development
,staging
,production
)WP_HOME
- Full URL to WordPress home (https://example.com)WP_SITEURL
- Full URL to WordPress including subdirectory (https://example.com/wp)AUTH_KEY
,SECURE_AUTH_KEY
,LOGGED_IN_KEY
,NONCE_KEY
,AUTH_SALT
,SECURE_AUTH_SALT
,LOGGED_IN_SALT
,NONCE_SALT
- Generate with wp-cli-dotenv-command
- Generate with our WordPress salts generator
- Add theme(s) in
web/app/themes/
as you would for a normal WordPress site - Set the document root on your webserver to Bedrock's
web
folder:/path/to/site/web/
- Access WordPress admin at
https://example.com/wp/wp-admin/
Keep track of development and community news.
- Join us on Discord by sponsoring us on GitHub
- Participate on the Roots Discourse
- Follow @rootswp on Twitter
- Read and subscribe to the Roots Blog
- Subscribe to the Roots Newsletter