Raku CLI::Wordpress
This module provides a simple abstraction to the Wordpress command line interface (wpcli) for site launch and maintenance.
If you encounter a feature you want that's not implemented by this module (and there are many), please consider sending a pull request.
Prerequisites
- ubuntu server with docker, docker-compose, raku and zef (e.g. by using raws-ec2)
- located at a static IP address (e.g.
raws-ec2 --eip launch
) with ssh access (e.g. via raws-ec2 connect
) - domain name DNS set with A records @ and www to the target's IP address
Getting Started
- ssh in and install CLI::Wordpress on server to get the rawp command
zef install https://github.com/p6steve/raku-CLI-Wordpress.git
[or CLI::Wordpress] - edit
vi ~/.rawp-config/wordpress-launch.yaml
with your domain name and wordpress configuration - launch a new instance of Wordpress & setup ssl certificate
rawp setup && rawp launch
- view your new Wordpress site frontend at https://yourdomain.com and configure basics
- setup ssl cert renewals via letsencrypt
rawp renewal
wordpress-launch.yaml
instance:
domain-name: your_domain
admin-email: 'adminyour_domain'
db-image: mysql:8.0
wordpress-image: wordpress:php8.0-fpm-alpine
webserver-image: nginx:1.15.12-alpine
certbot-image: certbot/certbot
wpcli-image: wordpress:cli-php8.0
WP CLI Examples
rawp wp '--info'
OS: Linux 5.15.0-1031-aws #35-Ubuntu SMP Fri Feb 10 02:07:18 UTC 2023 x86_64
Shell:
PHP binary: /usr/local/bin/php
PHP version: 8.0.28
php.ini used:
MySQL binary: /usr/bin/mysql
MySQL version: mysql Ver 15.1 Distrib 10.6.12-MariaDB, for Linux (x86_64) using readline 5.1
SQL modes:
WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /var/www/html
WP-CLI packages dir:
WP-CLI cache dir: /.wp-cli/cache
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.7.1
rawp wp 'search-replace "test" "experiment" --dry-run'
Table Column Replacements Type
wp_commentmeta meta_key 0 SQL
wp_commentmeta meta_value 0 SQL
wp_comments comment_author 0 SQL
...
wp_links link_rss 0 SQL
wp_options option_name 0 SQL
wp_options option_value 3 PHP
wp_options autoload 0 SQL
...
wp_users display_name 0 SQL
Success: 3 replacements to be made.
CMDs
- setup # position all config files for docker-compose and render wordpress-launch.yaml info
- launch # docker-compose up staging server, if OK then get ssl and restart
- renewal # configure crontab for ssl cert renewal
- up # docker-compose up -d
- wp 'cmd' # run wpcli command - viz. https://developer.wordpress.org/cli/commands/
- down # docker-compose down
- ps # docker-compose ps
- connect # docker exec to wordpress server
- terminate # rm volumes & reset
Usage
rawp <cmd> [<wp>]
<cmd> One of <setup launch renewal up wp down ps connect terminate>
[<wp>] A valid wp cli cmd (viz. https://developer.wordpress.org/cli/commands/)
Copyright
copyright(c) 2023 Henley Cloud Consulting Ltd.