# Install EasyEngine on Linux wget -qO ee rt.cx/ee4 && sudo bash ee # Install EasyEngine on Mac brew install https://rt.cx/easyengine # Create a site at example.com with WordPress sudo ee site create example.com --type=wp
🤯 Major Differences v3 VS v4
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 an 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.
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:
- Filesystem structure: global, site, and services
- Admin tools
- Request cycle
- Nginx reverse proxy
➡️ Install EasyEngine v4
Thanks for reading this far. It’s now time for some action! 🚀
Installing EasyEngine on a fresh server, as easy as:
wget -qO ee https://rt.cx/ee4 && sudo bash ee
brew install easyengine
⚠️ Note: While we wait for this PR to merge in brew, please use following alternative:
brew install https://rt.cx/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.
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! 🚀
On behalf of the EasyEngine team, I thank you, our users, who have kept us going in the last two years! 🙏
Links: v4 Install | Commands | Handbook • v3 to v4 Guide | Migration Script
SUBSCRIBE TO DEVELOPERS TAKEAWAY!
A Premium Development Newsletter by TheDevCouple! What is TheDevTakeaway?