Skip to content

AlsaceDigitale/digitalescapegame

Repository files navigation

Scalingo 12-Factor WordPress Distribution

Features

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

Installation

One-click installation

Deploy to Scalingo

Manual installation

  1. Clone this distribution
git clone https://github.com/Scalingo/scalingo-wordpress
cd scalingo-wordpress
  1. Use Scalingo CLI for create the app and add mysql addon
scalingo create my-wordpress
scalingo addons-add mysql mysql-sandbox
  1. 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/*"
    }
  ]
}
  1. 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 addon
  • WP_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 to
  • S3_UPLOADS_KEY - AWS Access Key ID for S3 authentication
  • S3_UPLOADS_SECRET - AWS Secret Key for S3 authentication
  • S3_UPLOADS_REGION - Region of the S3 bucket
  • 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].

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

  2. 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
  1. Access WP admin at https://my-wordpress.scalingo.io/wp/wp-admin

  2. Activate S3 Uploads plugin on WordPress plugin page at https://my-wordpress.scalingo.io/wp/wp-admin/plugins.php

Use in Development

Requirements

Run locally

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

Install Wordpress Plugin

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

Install Wordpress Theme

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

Documentation

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