// 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 installandwo 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:
wget -qO wo wops.cc && sudo bash woCheck and update WordOps itself:
wo --version
sudo wo updateStack 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
| Command | Purpose |
|---|---|
wo site create example.com --wp | Create a WordPress site |
wo site create example.com --wp -le | Same with a Let’s Encrypt certificate |
wo site update example.com --wpredis | Switch the site to Redis cache |
wo site info example.com | Site parameters: paths, PHP version, database |
wo site list | List of sites |
wo stack install --admin | Administration tools: phpMyAdmin, Adminer, Netdata, etc. |
wo stack upgrade | Upgrade stack components |
wo stack status | Service status |
wo maintenance | Update server system packages |
wo secure --auth | Change login and password for WordOps admin pages |
wo debug | Enable server-level debugging |
Practical examples
Example 1: Site with HTTPS and Redis cache
sudo wo site create myblog.com --wp -le
sudo wo site update myblog.com --wpredisWordOps 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
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,--php85are 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
# network sites on subdomains
sudo wo site create network.com --wpsubdomain -le
# or on subdirectories
sudo wo site create network.com --wpsubdir -leFor 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
- Create an empty site without installing WordPress:bash
sudo wo site create oldsite.com --wp --vhostonly - Copy the site files into the directory shown by
wo site info oldsite.com(usually/var/www/oldsite.com/htdocs). - Import the database via WP-CLI and fix URLs if the domain changed: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.bash
cd /var/www/oldsite.com/htdocs sudo -u www-data wp db import /tmp/oldsite.sql - 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
| Feature | WordOps | Control panel (FASTPANEL, HestiaCP) | Only WP-CLI |
|---|---|---|---|
| Stack installation | with one command | via the panel installer | manually |
| Let’s Encrypt certificates | built-in | built-in | manually |
| Nginx page cache | --wpfc | depends on the panel | manually |
| Interface | command line only | web interface | command line |
| Sites not on WordPress | limited (--html, --php) | full support | not 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)
Или оставьте заявку здесь:
// Related