Setting up a production-ready WordPress server on a fresh VPS often means going through a long list of tasks: installing Nginx, PHP-FPM, MariaDB, Redis, configuring firewall rules, setting up Fail2Ban, tuning PHP and database settings, enabling SSL, and preparing backups.
InitOps is designed to simplify that entire process.
InitOps is a single-file interactive Python CLI that can turn a fresh Ubuntu server into a production-ready WordPress host with a single command and a few configuration choices. It focuses on Ubuntu LTS servers and is designed to work across VPS sizes ranging from small 1 GB instances to larger dedicated servers.
What is InitOps?
InitOps provides a complete LEMP-based WordPress environment without requiring Docker, Ansible, or a large collection of shell scripts.
The stack includes:
- Nginx
- MariaDB
- PHP-FPM
- Redis
- WordPress
- iptables / nftables-based firewall configuration
- Fail2Ban
It also takes care of several common tasks that normally have to be configured manually, including performance tuning, backups, SSL renewal, domain migration, and server monitoring.
Ubuntu 24.04 and Ubuntu 26.04 Support
InitOps v2.0.0 supports Ubuntu 24.04 LTS and Ubuntu 26.04 LTS.
On Ubuntu 24.04, InitOps supports PHP 8.3, 8.4, and 8.5. On Ubuntu 26.04, PHP 8.5 is selected automatically and is installed from Ubuntu's official repositories without requiring a PPA. MariaDB and Redis versions are also adapted to the operating system version.
InitOps also performs OS detection and stops installation on unsupported operating systems instead of blindly applying system-level configurations.
Automatic Server Performance Tuning
One of the more interesting parts of InitOps is its hardware-aware configuration.
The tool detects the server's RAM and CPU resources and selects one of six optimization profiles:
microsmallstandardmediumlargexlarge
Each profile adjusts important components such as Nginx, PHP-FPM, MariaDB, Redis, and OPcache instead of using exactly the same configuration for every VPS.
For example, PHP-FPM worker sizing is calculated based on the RAM remaining after accounting for MariaDB, Redis, and system overhead. OPcache is also configured according to the selected hardware profile.
This is particularly useful for WordPress servers running on smaller VPS instances, where allocating too much memory to a single service can quickly become a problem.
PHP Version Manager
InitOps is not limited to selecting a PHP version during the initial deployment.
After deployment, the built-in PHP Version Manager can install additional PHP branches and switch between them without rebuilding the entire server. Old versions can remain installed so they can be restored when necessary.
The switching workflow is designed to reduce downtime. InitOps prepares the new PHP-FPM configuration, validates it, starts the new PHP-FPM service alongside the current one, updates the Nginx virtual hosts, validates Nginx, and only then retires the old PHP-FPM service.
For developers maintaining multiple WordPress projects, this can be much more convenient than manually rebuilding PHP-FPM configurations every time a site needs a different PHP branch.
Multi-Site WordPress Hosting
InitOps can also host multiple WordPress installations on a single VPS.
Each additional site gets its own database, Redis database index, Nginx virtual host, and web root. WP-Cron is also handled through the system cron with locking to avoid overlapping executions.
Adding another site is available directly from the interactive menu:
initops
Then choose:
[7] Add New Website
This keeps the deployment process consistent even when a single server is hosting several independent WordPress websites.
Security by Default
Security is another part of the default setup.
InitOps configures firewall rules, enables Fail2Ban for SSH brute-force protection, hardens MariaDB, and uses Unix sockets for MariaDB and Redis instead of exposing them over TCP. It also applies several WordPress hardening settings and standard file permissions.
For Ubuntu 24.04 and 26.04, InitOps uses different Fail2Ban backends according to the operating system, including iptables on 24.04 and nftables plus systemd journal on 26.04.
Backups, Monitoring, and SSL
InitOps includes several operational features that are easy to overlook when manually setting up a VPS.
Database backups use WP-CLI, automatically compress the resulting SQL dump with gzip, and remove backups older than 30 days. The backup system can also handle individual sites or all configured sites.
For monitoring, InitOps can send bilingual English/Vietnamese Discord alerts when disk space becomes critical, RAM usage is exhausted, CPU load becomes excessive, or MariaDB/MySQL goes down. It can also report service recovery events.
For SSL, InitOps supports Cloudflare DNS-01 renewal. It can configure the Certbot Cloudflare plugin, store credentials securely, configure the renewal workflow, reload Nginx after successful renewal, and perform a dry-run test before finishing.
Domain Migration
Changing a production domain can be surprisingly annoying because it involves more than just editing an Nginx configuration.
InitOps provides a one-shot domain migration workflow that updates the Nginx virtual host, issues a new SSL certificate, performs a database search-replace while respecting serialized WordPress data, flushes Redis, and automatically rolls back when Nginx validation fails.
Getting Started
On a fresh Ubuntu 24.04 or Ubuntu 26.04 LTS server, run:
curl -fsSL https://raw.githubusercontent.com/brokensmile2103/initops/main/install.sh | bash
There is also an installer endpoint provided by Init HTML:
curl -fsSL https://inithtml.com/initops/install.sh | bash
After installation, launch InitOps with:
initops
And update the engine with:
initops update
These are the documented quick-start commands for InitOps v2.0.0.
Final Thoughts
InitOps is aimed at a simple problem: making WordPress server deployment repeatable without turning every new VPS into a manual sysadmin project.
Instead of starting with a blank Ubuntu server and configuring every component individually, InitOps provides an opinionated stack with hardware-aware tuning, security defaults, multi-site support, PHP version management, backups, monitoring, and SSL automation.
For developers who regularly deploy WordPress on Ubuntu VPS servers, that can save a considerable amount of repetitive setup work.
InitOps is open source and released under the MIT License.
Note: InitOps modifies system-level configuration such as Nginx, MariaDB, Redis, firewall rules, and cron. The project recommends testing on a non-production server or keeping a backup before deployment.
→ Project Page
→ GitHub

Top comments (0)