WP-DPLOY

Prerequisites

Getting started

Install wp-dploy globally

$ npm i -g @hugohammarstrom/wp-dploy

Setup project to support wp-dploy:

$ mkdir new-wp-project
$ cd new-wp-project
$ wp-dploy init

Start wp-dploy containers:

$ wp-dploy start

Notice: To use the wp-dploy dns you need to add 127.0.0.1 as a namserver in your network configurations, a tip is to add another dns to prevent the network from not working when the wp-dploy dns is stopped. eg: 8.8.8.8 and 8.8.4.4

Commands

All commands that wp-dploy supports

Init

Init command used to initialize a dploy project

$ wp-dploy init

Notes:

If you are not using the wizard to initialize the project you need to replace the placeholders in the .dplorc.json file

Start

Start command used to start local invironment

$ wp-dploy start | up

Notes:

Must be run in a directory that is initialized as a dploy project

Stop

Stop command used to stop local invironment

$ wp-dploy stop | down

Options:

-a or --all If you want to stop containers that is not in the current directory

Deploy

Stop command used to stop local invironment

$ wp-dploy deploy

Options:

-a or --all Deploy to all configured sites

-t or --tag Deploy a specific commit tag or hash

-b or --branch The branch to deploy from

--sites A comma separated string with site names to deploy to

List

List all containers that is managed by wp-dploy

$ wp-dploy list | ls

WP-cli

wp-dploy adds a command to use the internal wp-cli in the docker containers:

$ docker-wp

Notes:

This command needs to be executed inside the project directory

Configuration file

{
"server": {
"host": "example.com", -- This is the hostname that wp-dploy uses to ssh into the server --
"username": "root", -- This is the username that wp-dploy uses to ssh into the server --
"installation": {
"path": "/home/ubuntu/wp-installation" -- This is the path on the server where wordpress is installed --
}
},
"sites": [{
"url": "example.com", -- The url to the production website --
"local_url": "example.localhost" -- The url to the development website locally--
}]
}

Todos

Write Tests

Explore the possibility to use recipes for database pulling. Eg via npm modules