Giter Club home page Giter Club logo

wp-pds's Introduction

Public Defender Service

Wordpress theme.

Features

  • Dependency management with Composer
  • Enhanced password hashing using bcrypt
  • Builds into a docker image
  • Docker-compose is used to run as a local development server

Requirements

  • PHP >= 7.1
  • Composer - Install
  • Docker & docker-compose - Install
  • Dory (docker proxy for local development) - Install

Getting Started

  1. Clone this repo to your local machine. Since you'll be using this as a starter for your project, you'll want to delete the .git directory.

    git clone [email protected]:ministryofjustice/wp-pds.git .
    rm -rf .git
  2. Create a .env file by copying from .env.example:

    cp .env.example .env

    Set the SERVER_NAME variable to pds.docker. This is the hostname that will be used for development on your local machine.

  3. Build the project locally. This will install composer dependencies on your local filesystem.

    make build

    If you experience any errors at this point, it may be due to being unable to access the private composer repository. More details here.

  4. Start the dory proxy, if it's not already running.

    dory up

    If you get an error message when trying to start dory, make sure you have docker running.

  5. Build and run the docker image.

    make run
  6. Once the docker image has built and is running, you should be able to access the running container by going to http://pds.docker/ using your web browser.

    You will need to run through the WordPress installation wizard in your browser.

    The WordPress admin area will be accessible at http://pds.docker/wp/wp-admin.

Composer + WordPress plugins

The installation of WordPress core and plugins is managed by composer.

See composer.json for the required packages.

Plugins in the WordPress plugin repository are available from WordPress Packagist (wpackagist).

Premium and custom plugins used by MOJ are available in the private composer repository composer.wp.dsd.io.

WordPress Packagist plugins

Wpackagist plugins are named by their slug on the WordPress plugin repository, prefixed with the vendor wpackagist-plugin.

Some examples:

| Plugin name | WordPress plugin URL                         | URL slug      | package name                      |
| ----------- | -------------------------------------------- | ------------- | --------------------------------- |
| Akismet     | https://wordpress.org/plugins/akismet/       | akismet       | wpackagist-plugin/akismet         |
| Hello Dolly | https://wordpress.org/plugins/hello-dolly/   | hello-dolly   | wpackagist-plugin/hello-dolly     |
| Yoast SEO   | https://wordpress.org/plugins/wordpress-seo/ | wordpress-seo | wpackagist-plugin/wordpress-seo   |

Example: Installing Akismet plugin

Run the following command:

composer require "wpackagist-plugin/akismet" "*"

This will install the latest version of Akismet using the corresponding wpackagist package.

Private composer repository

The private composer repository composer.wp.dsd.io contains premium and custom WordPress plugins.

Access to this repository is restricted. Refer to internal documentation for further details.

Building theme assets

Theme assets can be built as part of the docker image. Add required commands to bin/build.sh.

Configure the default theme

Set your theme as the default by adding the following line to config/application.php:

define('WP_DEFAULT_THEME', 'yourthemename');

WP-CLI

The WordPress CLI is a useful tool for running commands against your WordPress installation.

To use WP-CLI, your docker container must already be running. (This will probably be running in a separate terminal session/tab.)

  1. Run:

    make bash

    A bash session will be opened in the running container.

  2. The WP-CLI will be available as wp.

    For example, to list all users in the install:

    wp user list

Email delivery

When running locally for development, emails sent by WordPress are not delivered. Instead they are captured by mailcatcher.

To see emails, go to http://mail.pds.docker/ in your browser. e.g. http://mail.example.docker

This will load a webmail-like interface and display all emails that WordPress has sent.

Make commands

There are several make commands configured in the Makefile. These are mostly just convenience wrappers for longer or more complicated commands.

| Command      | Descrption                                                                                                                                                                                           |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `make build` | Run the build script to install application dependencies and build theme assets. This will typically involve installing composer packages and compiling SASS stylesheets.                            |
| `make clean` | Alias of `git clean -xdf`. Restore the git working copy to its original state. This will remove uncommitted changes and ignored files.                                                               |
| `make run`   | Alias of `docker-compose up`. Launch the application locally using `docker-compose`.                                                                                                                 |
| `make bash`  | Open a bash shell on the WordPress docker container. The [WP-CLI](https://wp-cli.org/) is accessible as `wp`. The application must already be running (e.g. via `make run`) before this can be used. |
| `make test`  | Run tests on the application. Out of the box this will run PHP CodeSniffer (code linter).                                                                                                            |

wp-pds's People

Contributors

brown-a2 avatar jsmcgd avatar ollietreend avatar roblowemoj avatar stephdavid avatar tobeycodes avatar wilson1000 avatar wilson1000-moj avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

uk-gov-mirror

wp-pds's Issues

Default branch is not main

Hi there
The default branch for this repository is not set to main
See repository settings/settings/branches to rename the default branch to main and ensure the Branch protection rules is set to main as well
See the repository standards: https://github.com/ministryofjustice/github-repository-standards
See the report: https://operations-engineering-reports.cloud-platform.service.justice.gov.uk/github_repositories
Please contact Operations Engineering on Slack #ask-operations-engineering, if you need any assistance

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.