EasyEngine v4 Stable Release

We are proud to announce that the most awaited EasyEngine release – version 4, is here! 🎉🚀

If you have been following our blog, you may already know that this is a big release with plenty of major changes. So before you jump to the install instructions, spend a few minutes to read this post.

For EasyEngine v3 Users 🙇

While v4 is a major change with some new features, this is not a security release. Therefore, you don’t need to rush into applying the update. We understand that you may be busy with your near and dear ones during Thanksgiving! 😉🦃

But once you are ready to migrate, it is important to understand the major changes as outlined below. 

Major Differences

We have a detailed document outlining v3 to v4 changes here along with the migration script. Alternatively, you can have a glance at the quick summary, below.

  • Virtual email hosting feature is completely removed. 
  • The number of sites on a single server is limited to 25. Fortunately, WordPress Multisite is counted as one site towards the limit.
  • From four WordPress caching options, we have shifted to only one. Migration script automatically takes care of this unless you have customizations around cache.
  • Some commands are removed, either temporarily or permanently. Some are replaced & renamed. There are also new commands that have been added.
  • v4 is rewritten in PHP, using WP-CLI as a framework. Shouldn’t concern you, unless you have some local python-patches.
  • v4 uses Docker images for PHP, Nginx, MySQL, etc instead of traditional OS level packages. Again, you would be fine if you have never heard about Docker before.

For All Users – New v4 Stuff  🎉

EasyEngine v4 adds many new features. It also has many internal changes in terms of code, architecture and focus area. Let me walk you through some of them, below.

Focus Shift – From Ops to DevOps  🎯

Until EasyEngine v3, our focus was to create a powerful hosting stack to make the system admin’s job easy. We are still committed to making hosting easy and I believe that we are advancing in that direction, at quite a steady pace.

After working in the WordPress ecosystem for 10 years, I can say that most of the scaling issues, that are hard to fix, are often caused by bad code. The issues related to bad server config are much easier to fix than issue related to bad code quality.

From v4, our goal is to reduce the gap between the developer & system admin workflow. 

We love Twelve Factor App guidelines and we hope to bring most of it to the WordPress ecosystem.

This is what we mean by a shift from Ops to DevOps!

Use of Docker 🐳

EasyEngine v4 uses docker to distribute and run the whole LEMP stack. So Nginx, Redis, MariaDB etc are not installed on the host. Only PHP is required on the host as v4 is developed in PHP itself.

As every site has its own PHP and Nginx container, there is some isolation and improved security, compared to the way in which sites ran in v3.

You don’t need prior docker knowledge to use EasyEngine. EasyEngine handles Docker, internally, to the point that you won’t need to run a single Docker command for your day-to-day EasyEngine usage.

With Docker, we now have the possibility to run EasyEngine on any platform where Docker & PHP are supported. This includes Windows OS also, which we are yet to test! 😉

Extensible via Packages 📦

As v4 uses wp-cli, you can extend EasyEngine using composer packages. In fact, the core commands are all packed into their own composer packages. 

We have already published some developer documentation to help you develop custom command. We hope to add support to distribute your custom commands, in the coming months.

Mac Support 🍎

EasyEngine v4 works on Mac using brew.  It’s as simple as running brew install easyengine.

Most of our developers at rtCamp prefer Mac. Now with the same EasyEngine, on Mac and on our servers, we will be able to maintain better dev/prod parity.

Updated Docs

Referring to WP-CLI, EasyEngine commands documentation is automatically generated and hosted at easyengine.io/commands.

Apart from this, we have created a handbook – easyengine.io/handbook that has additional information about the many aspects of v4, such as:

Install EasyEngine v4

Thanks for reading this far. It’s now time for some action! 🚀

Installing EasyEngine on a fresh server, as easy as:

  • Linux: wget -qO ee https://rt.cx/ee4 && sudo bash ee
  • Mac: brew install easyengine 

You can read the detailed installation guide, for additional details.

In case, you are using v4 RC2 already, you can update to the stable release by running:

ee cli update

Need Help? ⛑️

We understand that this is a big release and that you may need some help with it. Please be mindful of the fact that things can go wrong in such major upgrades.

We recommend that you upgrade within the dev/staging environment first. Don’t forget to create backups! 🤞

Please visit the community page to understand how to get help.

Credits 🙏

A bunch of rtCampers worked tirelessly, day and night – over the last 10 months, to make this release possible. They were helped by more than a dozen colleagues, at different stages. Overall, EasyEngine v4 took more than 10,000 hours of work.

A big shout out and thanks to Mriyam, Riddhesh, Radhe, Kirtan, Sagar N, Rahul P, Utkarsh and the other rtCampers for this exciting release! 🚀

EasyEngine Team celebrating v4 release 🎉

On behalf of the EasyEngine team, I thank you, our users, who have kept us going in the last two years! 🙏

Happy Thanksgiving! 🙂

Links: v4 Install | Commands | Handbook • v3 to v4 Guide | Migration Script

36 responses to “EasyEngine v4 Stable Release”

  1. Congrats on the upgrade to stable v4! I actually randomly did an update on my test server and tweeted about the update last night πŸ˜‰

    I know you’ve made the migration easy from v3 to v4, but would you suggest starting with a fresh v4 install and then migrating your content over to it? This way it removes any leftovers that were used/installed from v3?

    Not to knock your coding talent, but there always seems to be leftover code, scripts, components when upgrading anything to a new version (Windows versions, video games, etc).

    I would just like the absolute cleanest code running on my server and think it would be best to start with a fresh v4 server and am curious on what your thoughts about this is.

    • Yep. I saw your tweet. We tagged release last night only but documentation took extra time to finish.

      Re: v3 > v4

      We ourself did the remote migration in all our cases.

      We have some large enterprises client with whom changing IP address (DNS edits) takes a lot of coordination & back-and-forth efforts. Only for them, we will run the local migration.

      Also, in remote migration, you can test WordPress multisite also. Something that is not available on the local setup.

      • Thanks for the information. I have never used multisite but with me running 3 sites on one server and four sites on another. . .I may need to look into that.

        It’ll be something I need to test later as I get paranoid with live production sites and things like NinjaFirewall’s WAP and all that.

        Thanks again for the update!

  2. Noob question:

    Will there be any increase in CPU and RAM consumption for multiple wordpress installation compared to v3 as for 10 wordpress websites on docker there will be 10 separate nginx server running in each container?

    • This easyengine.io server has 16 WordPress sites. One of them is multisite. We didn’t notice any noticeable increase in CPU & RAM overhead. This is a simple AWS EC2 instance with 8GB RAM, 2 CPU core. DB & Redis are local.

      Compared to v3, v4 in theory likely to have a small overhead of Docker abstraction layer. But then because of Docker, we will be able to upgrade underlying stack much frequently, which should give a net positive in overall performance.

      Besides, we anticipate much lesser “install” related issues. I hope that will save a significant human time which is way more worth than CPU times.

  3. I am really excited about this update. I did a test on two identical VM using Ubuntu 18.04 (1cpu 1gb ram) and 3.8 is still rendering sites faster than 4.0. The average page speed is 3s x 6s (on 4.0).

  4. This is super Awesome! πŸ’―

    Mad props to you Rahul and to the entire team of rtCamp + contributors of EasyEngine. I have been waiting for this so long. This will also help our tooling to get better and be more containerized with Docker + some day Kubernetes support in a good way to connect Go-lang with WordPress. (Already doing that in a project and not very happy with the tooling).

    Looking forward to trying it out and testing.

    Also posted the update at TheDevCouple β†’ https://thedevcouple.com/easyengine/

    Peace! ✌️

    • We haven’t noticed any performance impact thus far. But we cannot rule out there might be slight overhead added by Docker. As we know get more familiar with Docker, we will be tweaking it further.

      Rest, containers are common in production so fortunately, we are not first to use them!

  5. I haven’t heard about easyengine deployment script. I’ll definitely try this out soon. Great work guys πŸ™‚

  6. Hello Rahul, big fan of ur work, congrats on another milestone

    Quick question tho.

    Is Ubuntu 18.04 LTS supported?

    I read on ur post about the first RC that it will be supported but then read the FAQ and it says only Ubuntu 14 and 16 are supported, what gives

    Tahnk you, greetings from Ecuador

    • Yes, Ubuntu 18.04 is supported. I have been using EasyEngine on Ubuntu 18.04 for my website and haven’t had any issues.

  7. Hello Rahul,

    The site limit throws up a complication for me. I take your point re using Multisite but I want to add ssl (via Letsencrypt) to all my sites.

    Do you or anyone else know how to use Letsencrypt to apply ssl to mapped domains on Multisite?

    I have yet to find a solution and not being able to is making easy Engine look a less viable option for me in teh medium term (as much as a I love using it).

  8. How can we still use V3?
    Cannot locate the server root for a simple IP (no domain) to files

  9. I’m a little bit late haha, but congrats
    i’m will start to update my system with easyengine 4, hope all works fine πŸ˜€