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
- Clone this distribution
git clone https://github.com/Scalingo/scalingo-wordpress
cd scalingo-wordpress
- Use Scalingo CLI for create the
app
and addmysql addon
scalingo create my-wordpress
scalingo addons-add mysql mysql-sandbox
- Create an S3 Bucket on AWS and configure IAM user correctly
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
)WP_HOME
- Full URL to WordPress home (http://my-wordpress.scalingo.io)WP_SITEURL
- Full URL to WordPress including subdirectory (http://my-wordpress.scalingo.io/wp)S3_UPLOADS_BUCKET
- Name of the S3 bucket to upload files toS3_UPLOADS_KEY
- AWS Access Key ID for S3 authenticationS3_UPLOADS_SECRET
- AWS Secret Key for S3 authenticationS3_UPLOADS_REGION
- Region of the S3 bucketAUTH_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/themes
as 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 Uploads
plugin 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-interaction
Then start the Nginx:
docker-compose up nginx
Simple 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/akismet
Simple 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/hueman
Bedrock documentation is available at https://roots.io/bedrock/docs.