// DevOps

WordOps: A Complete Review and Hands-On Guide to Managing WordPress on a VPS

Published on 2026-09-22

WordOps — an open-source (MIT) command-line tool for deploying and maintaining WordPress sites on your own VPS. It installs and configures the web stack, creates sites with the desired caching option, and issues Let’s Encrypt certificates. WordOps grew out of EasyEngine v3 and is still under development: as of September 2026 the current version is 3.23.1 (August 2026).


What is WordOps

WordOps is written in Python and deploys a server stack with a single command:

  • Nginx;
  • PHP-FPM of multiple versions;
  • MariaDB;
  • Redis;
  • WP-CLI;
  • optionally — Fail2ban, UFW, phpMyAdmin, Adminer, Netdata and other admin tools.

Sites are created with the wo site create command: WordOps itself creates the database, the Nginx virtual host, installs WordPress, and configures the chosen caching.

Key features

  • Different WordPress variants: single site and multisite in subdirectories or subdomains.
  • Caching: Nginx FastCGI Cache (--wpfc), Redis object cache (--wpredis), WP Super Cache, WP Rocket, Cache Enabler.
  • Let’s Encrypt certificates with automatic renewal, including wildcards via DNS API.
  • Install and upgrade stack components with wo stack install and wo stack upgrade.

System requirements

The project’s README recommends Ubuntu 24.04 LTS and Ubuntu 22.04 LTS; Debian 11–13 is also supported. Install WordOps on a clean server: it takes over Nginx, PHP and MariaDB and conflicts with already installed web servers and panels.


Installation

SSH access as root or a user with sudo is required. Command from the project’s README:

bash
wget -qO wo wops.cc && sudo bash wo

Check and update WordOps itself:

bash
wo --version
sudo wo update

Stack components are installed as bundles — for example, sudo wo stack install --web installs Nginx, PHP, MySQL and WP-CLI — or automatically when creating the first site.


Main commands

CommandPurpose
wo site create example.com --wpCreate a WordPress site
wo site create example.com --wp -leSame with a Let’s Encrypt certificate
wo site update example.com --wpredisSwitch the site to Redis cache
wo site info example.comSite parameters: paths, PHP version, database
wo site listList of sites
wo stack install --adminAdministration tools: phpMyAdmin, Adminer, Netdata, etc.
wo stack upgradeUpgrade stack components
wo stack statusService status
wo maintenanceUpdate server system packages
wo secure --authChange login and password for WordOps admin pages
wo debugEnable server-level debugging

Practical examples

Example 1: Site with HTTPS and Redis cache

bash
sudo wo site create myblog.com --wp -le
sudo wo site update myblog.com --wpredis

WordOps will create the database, the Nginx virtual host, install WordPress and issue the certificate, then switch the site to Redis object cache. For HTTPS the domain must already point to the server.

Example 2: WooCommerce store with FastCGI Cache

bash
sudo wo site create shop.com --wpfc -le --php83
  • --wpfc — Nginx FastCGI page cache: pages are served from cache without running PHP;
  • --php83 — PHP version for the site. The list of supported versions depends on the WordOps release; in recent releases, per the README, --php84, --php85 are also available.

For an online store, after launch check that the cart, checkout and user account are not served from the page cache: visit them from two different browsers and make sure cart contents do not mix.

Example 3: Multisite

bash
# network sites on subdomains
sudo wo site create network.com --wpsubdomain -le
# or on subdirectories
sudo wo site create network.com --wpsubdir -le

For a multisite on subdomains you need a wildcard DNS record, and for HTTPS a wildcard certificate via DNS API (the --dns parameter, e.g. --dns=dns_cf for Cloudflare).

Example 4: Migrating an existing site

  1. Create an empty site without installing WordPress:
    bash
    sudo wo site create oldsite.com --wp --vhostonly
  2. Copy the site files into the directory shown by wo site info oldsite.com (usually /var/www/oldsite.com/htdocs).
  3. Import the database via WP-CLI and fix URLs if the domain changed:
    bash
    cd /var/www/oldsite.com/htdocs
    sudo -u www-data wp db import /tmp/oldsite.sql
    More about WP-CLI — in the article WP-CLI: A Comprehensive Guide to Managing WordPress from the Command Line, and about migration in general — in the article Moving or restoring a website for beginners: don’t be afraid, it’s easier than it seems.
  4. Issue the certificate once DNS has switched to the new server: sudo wo site update oldsite.com -le.

Backups

There is no separate backup command in WordOps. Copy the database (mysqldump or wp db export) and the site directory using usual tools and store copies off-server. An example setup for Yandex Cloud is in the article WordPress backup to Yandex Cloud: mysqldump, rclone, and Telegram notifications.


WordOps and alternatives

FeatureWordOpsControl panel (FASTPANEL, HestiaCP)Only WP-CLI
Stack installationwith one commandvia the panel installermanually
Let’s Encrypt certificatesbuilt-inbuilt-inmanually
Nginx page cache--wpfcdepends on the panelmanually
Interfacecommand line onlyweb interfacecommand line
Sites not on WordPresslimited (--html, --php)full supportnot intended for that

Control panels are covered in the series Hosting Control Panels: Part 1 — Why You Need Them and How to Choose, and choosing a web stack is discussed in the article LAMP, LEMP, or Nginx + Apache: which web stack to choose.


When to choose WordOps

WordOps is suitable if the server hosts only WordPress sites and you prefer managing them from the command line: blogs, content sites, WooCommerce stores, multisite networks. If you also need mail, sites on other platforms, or a web interface for clients on the same server, a control panel is more convenient.

// Contact

Need help?

Get in touch with me and I'll help solve the problem

I reply within one business day (03:00-13:00 GMT)

Или оставьте заявку здесь:

Confirm that you are not a bot.

Write and get a quick reply