WordPress Automation with EasyEngine

EasyEngine (ee) is python based command line control panel to setup NGINX server on Ubuntu and Debian Linux distribution for HTML, PHP, MySQL, HHVM, PageSpeed and WordPress sites

If you self-host WordPress you’re probably used to creating your MySQL databases and Apache/Nginx config files via the command line. But what if there was a faster better way. There is and its called EasyEngine or EE. It is a command line tool for managing LEMP stacks. Most commonly it’s used for installing and managing WordPress. At its most basic EE allows you to create a new WordPress website on your server with one command, in about 30 seconds.


Setting up EasyEngine

EasyEngine’s setup is as the name describes, pretty Easy. There is a guide available, but I’ll go over the steps. The highest version of Ubuntu currently supported is 16.04.

  1. Create a new Ubuntu or Debian virtual server.
  2. Ensure the necessary firewall rules are in place for your virtual machine
    22/TCP (Inbound/Outbound) : Standard SSH port
    80/TCP (Inbound/Outbound) : Standard HTTP port
    443/TCP(Inbound/Outbound) : Standard HTTPS port
    22222/TCP (Inboud) : EasyEngine Web Admin
    11371/TCP (Outbound) : To connect to GPG Key Server
  3. Login to your server’s console
  4. Run the following command to install EasyEngine
    wget -qO ee rt.cx/ee && sudo bash ee
  5. During the setup it will prompt you to enter your Name and Email address so that you can receive any updates.
  6. EasyEngine is ready to go!

EasyEngine-7The EE setup will install a MySQL instance on your server and setup Nginx. Creating a new site will create the necessary database and Nginx host entry. EasyEngine will also create the /var/www file system for each website and properly set file permissions.



EasyEngine-9Create a New WordPress Site: sudo ee site create example.com --wp




EasyEngine-3Create a WordPress Site with W3 Total Cache Installed: ee site create example.com --w3tc



EasyEngine-4Delete a WordPress Site: ee site delete example.com



Tweaking EasyEngine

The EasyEngine config file is located in /etc/ee/ee.conf. In this config file you can customize many things about EE. You can change the WordPress Admin username and password to be something specific. You can specify a MySQL database name prefix. You set a specific email address to be used. Most of these settings can also be overridden in the command line.

EasyEngine also supports a number of MySQL flavors like MariaDB and Percona. Or pointing EE at a separate MySQL server. Support for configuring SSL is also available, including support for Let’s Encrypt. The steps to configure are well detailed on this tutorial.


If you are managing multiple WordPress websites or you are a freelancer setting up sites over and over, then EasyEngine will dramatically improve your life. One issue I found when setting it up is that you really can not add EasyEngine to servers that are already running WordPress, you need to start with a clean server. I also tried using a newly release version of Ubuntu that was not LTS, and it was not supported. But for a free tool, its very powerful and has already shaved work off my schedule.

  • Extremely Easy to Install
  • Easy to Use
  • Makes New WordPress Setups Simple
  • Lots of Customization Options

  • Needs a Clean Server to Start
  • Can’t Pre-install Plugins
  • Not compatible with all versions of Ubuntu

I’m an avid Technologist, while I do work on architecting solutions that span from the desktop to the data center, my passion is Web Infrastructure.
We will be happy to hear your thoughts

      Leave a reply