spinupwp / spinupwp-cli
The SpinupWP CLI
Installs: 1 216
Dependents: 0
Suggesters: 0
Security: 0
Stars: 11
Watchers: 8
Forks: 1
Open Issues: 10
Requires
- php: ^8.0
- spinupwp/spinupwp-php-sdk: ^1.0.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.2
- laravel-zero/framework: <=9.2.0
- mockery/mockery: ^1.4.3
- pestphp/pest: ^1.3
- phpstan/phpstan: ^1.8
README
Installation
To get started, require the package globally via Composer:
composer global require spinupwp/spinupwp-cli
In addition, you should make sure the /vendor/bin
directory in your global Composer home directory is in your system's "PATH". Depending on your operating system this could be either ~/.composer/
or ~/.config/composer/
. You can use the composer config --global home
command to check this location.
Usage
Installing the SpinupWP CLI provides access to the spinupwp
command.
spinupwp <command>
You will need to generate an API token to interact with the SpinupWP CLI. After you have generated an API token, you should configure your default profile:
spinupwp configure
You can configure multiple profiles, which is useful if you're a member of multiple teams:
spinupwp configure --profile=hellfishmedia
To run a command using a specific profile, pass the profile option:
spinupwp servers:list --profile=hellfishmedia
If no profile is supplied, your default profile will be used (if configured).
Servers
# Delete a server
spinupwp servers:delete <server_id>
# Get a server
spinupwp servers:get <server_id> --fields=id,name,ip_address,ubuntu_version,database.server
# List all servers
spinupwp servers:list --fields=id,name,ip_address,ubuntu_version,database.server
# Reboot a server
spinupwp servers:reboot <server_id>
# Reboot all servers
spinupwp servers:reboot --all
# Start an SSH session
spinupwp servers:ssh <server_id> <user>
You can pass any properties of the Server Schema to the --fields
flag.
Nested properties should use dot notation, for example, database.server
.
Services
# Restart MySQL on a server
spinupwp services:mysql <server_id>
# Restart MySQL on all servers
spinupwp services:mysql --all
# Restart Nginx on a server
spinupwp services:nginx <server_id>
# Restart Nginx on all servers
spinupwp services:nginx --all
# Restart PHP on a server
spinupwp services:php <server_id>
# Restart PHP on all servers
spinupwp services:php --all
Sites
# Create a site
spinupwp sites:create <server_id>
# Delete a site
spinupwp sites:delete <site_id>
# Run a Git deployment
spinupwp sites:deploy <site_id>
# Get a site
spinupwp sites:get <site_id> --fields=id,server_id,domain,site_user,php_version,page_cache,https
# List all sites
spinupwp sites:list --fields=id,server_id,domain,site_user,php_version,page_cache,https
# Purge the page cache for a site
spinupwp sites:purge <site_id> --cache=page
# Purge the page cache for all sites
spinupwp sites:purge --all --cache=page
# Purge the object cache for a site
spinupwp sites:purge <site_id> --cache=object
# Purge the object cache for all sites
spinupwp sites:purge --all --cache=object
# Start an SSH session as the site user
spinupwp sites:ssh <site_id>
You can pass any properties of the Site Schema to the --fields
flag.
Nested properties should use dot notation, for example, backups.next_run_time
or git.branch
.
# Create a site using field flags instead of interactive prompts
spinupwp sites:create <server_id> --installation-method="<installation_method>" \
--domain="<domain>" --https-enabled --site-user="<site_user>" --db-name="<database_name>" \
--db-user="<database_user>" --db-pass="<database_password>" --wp-title="<wordpress_site_title>" \
--wp-admin-email="<wordpress_admin_user_email>" --wp-admin-user="<wordpress_admin_user_username>" \
--wp-admin-pass="<wordpress_admin_user_password>" --php-version="<php_version>" --page-cache-enabled
A full reference of the available flags is available anytime.
# Display available Arguments and Options for site:create
spinupwp sites:create --help
Upgrade
To update the SpinupWP CLI to the latest version, run:
composer global update