Based on Bedrock
- Better folder structure
- Dependency management with Composer and WordPress Packagist
- 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)
With few more features added by Scalingo:
- Configurable from var environment
- File Uploads sent to S3 Bucket by default with S3-Uploads plugin
Actual WordPress version : 5.3
The variables S3_UPLOADS_BUCKET, S3_UPLOADS_KEY, S3_UPLOADS_SECRET, S3_UPLOADS_REGION
are not required when you don't want to use the WordPress image upload with S3.
In reverse, if you activate the already preinstalled S3 plugin you must specify these variables.
- Clone this distribution
git clone https://github.com/Scalingo/scalingo-wordpress
cd scalingo-wordpress- Use Scalingo CLI for create the
appand addmysql addon
scalingo create my-wordpress
scalingo addons-add mysql mysql-sandbox- Create an S3 Bucket on AWS and configure IAM user correctly (only if you want to use image upload with S3)
IAM user security policy example:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectAclVersion",
"s3:AbortMultipartUpload",
"s3:ListBucket",
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::bucketname-here"
},
{
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectAclVersion",
"s3:AbortMultipartUpload",
"s3:ListBucket",
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::bucketname-here/*"
}
]
}- Update the application environment through the dashboard or with the
Scalingo command line
scalingo env-set VARIABLE_NAME=VALUE
DATABASE_URL- Connection string to the MySQL database -mysql://localhost:3306/wp-bedrock- Automatically added with the Scalingo MySQL addonWP_ENV- Set to environment (development,staging,production) (required)WP_HOME- Full URL to WordPress home (http://my-wordpress.scalingo.io) (required)WP_SITEURL- Full URL to WordPress including subdirectory (http://my-wordpress.scalingo.io/wp) (required)S3_UPLOADS_BUCKET- Name of the S3 bucket to upload files to (optional)S3_UPLOADS_KEY- AWS Access Key ID for S3 authentication (optional)S3_UPLOADS_SECRET- AWS Secret Key for S3 authentication (optional)S3_UPLOADS_REGION- Region of the S3 bucket (optional)AUTH_KEY,SECURE_AUTH_KEY,LOGGED_IN_KEY,NONCE_KEY,AUTH_SALT,SECURE_AUTH_SALT,LOGGED_IN_SALT,NONCE_SALT
You can get some random salts on the [Roots WordPress Salt Generator][roots-wp-salt].
-
Add theme(s) in
web/app/themesas you would for a normal WordPress site. -
Deploy the application on Scalingo
# Optionally add theme to your git repository
git add web/app/themes
git commit -m "Add themes"
# Then push to Scalingo
git push scalingo master-
Access WP admin at
https://my-wordpress.scalingo.io/wp/wp-admin -
Activate
S3 Uploadsplugin on WordPress plugin page athttps://my-wordpress.scalingo.io/wp/wp-admin/plugins.php
A Docker Compose file is available to run the WordPress locally. You first need to install the dependencies with:
docker-compose run --rm composer install --prefer-source --no-interactionThen start the Nginx:
docker-compose up nginxSimple command for install plugins:
docker-compose run --rm composer require --ignore-platform-reqs wpackagist-plugin/{PLUGIN_NAME}You can find plugins on Wordpress Packagist
Example to install akismet plugin:
docker-compose run --rm composer require --ignore-platform-reqs wpackagist-plugin/akismetSimple command for install themes:
docker-compose run --rm composer require --ignore-platform-reqs wpackagist-theme/{THEME_NAME}You can find themes on Wordpress Packagist
Example to install hueman theme:
docker-compose run --rm composer require --ignore-platform-reqs wpackagist-theme/huemanBedrock documentation is available at https://roots.io/bedrock/docs.