We have just released EasyEngine v4 Beta-3. We’re thankful to the people helping us in whatever capacity they can by suggesting ideas, testing our beta releases and reporting bugs. This beta release fixes issues found in beta-1 and beta-2 releases and also introduces a few features. Please leave us helpful comment or report issues on our GitHub repo.
You can get started on our currently supported OSs (Ubuntu 14.04, 16.04, 18.04 and Debian 8) using –
wget -qO ee rt.cx/ee4beta && sudo bash ee
We repeat, v4 is not ready for production. For instruction on how to install on currently unsupported distributions, please see installation instructions.
Port from Traefik to jwilder/nginx-proxy
- This is one of the major changes that took us some time to figure out as we tried a few existing solutions like jwilder/nginx-proxy, Traefik and Fabio. After taking a look at all their pros and cons, we decided to stick with jwilder/nginx-proxy due to few of reasons. First, Nginx is something we love and understand. Secondly, we found a number of issues with all three of the tested tools.
- The problem with jwilder/nginx-proxy was that it didn’t have support for letsencrypt. More on this later.
- Traefik has both static and dynamic config and a few of the most important settings for running EasyEngine was to be added to the static configuration and for Traefik to reload the static configuration meant restarting Traefik. For exampe, if we had to enable HTTPS for one WordPress MU subdomain site, for which we’ll require wildcard SSL, we’d have to restart the Traefik reverse proxy and all other sites on the server would go down.
- Fabio is a powerful service which lends itself to the containerized services wonderfully. But Fabio in turn has a dependency on Consul and that would require us to modify the application WordPress itself. Moreover, Fabio along with Consul might be useful for high availability but for our requirements, it did not fit well.
- So we thought, if we had to make modifications, we should make those modifications to a tool that has support for most of the capabilities we require as well as is easy for us to work with. So we added support for LetsEncrypt in jwilder/nginx-proxy but we are maintaining our own fork of it – easyengine/nginx-proxy
We have added letsencrypt ssl support for single as well as multi-site types.
- We’ve used acmephp to implement letsencrypt integration. We chose it over certbot as acmephp is a php library which allows us more control and hence it integrates better with EasyEngine. In the process of integrating it, we also contributed to upstream by fixing some critical issues.
- For the single wordpress site as well as Subdirectory wordpress sites, EasyEngine issues certificates using the http challenge method. Hence, only input need from user in this method is an email to register on letsencrypt which can be passed using `–le-mail=<mail-id>`, or by saving the value of `le-mail` in `/opt/easyengine/config.yml`. If neither is done then EasyEngine will prompt for email only first time during site creation. After that it will read from config at `/opt/easyengine/config.yml`
- For Subdomain multisite creation, EasyEngine uses dns method to generate wildcard certificates. For now, users will have to manually add TXT records as displayed during site creation and then run `ee site <site-name> le` to complete the certificate checks and generation. This will be automated in later versions as we add support for multiple DNS providers, through the use of API. This is something where the community can help. We might add Cloudflare support before the stable release as it is a popular provider.
- You can use `–letsencrypt` to create SSL sites.
# Install wordpress with letsencrypt ee site create example.com [--letsencrypt|--le] # Install wordpress subdomain with letsencrypt (wildcard certs) ee site create example1.com --wpsubdom --le # After adding the TXT record you need to run ee site le example1.com
- Find more examples in the README https://github.com/EasyEngine/site-command/
- Add image tagging to ensure that proper images of EasyEngine are pulled and used according to the version of EasyEngine being used by the user.
Other issues that have been fixed are
- Add confirmation to the delete commands.
- Improve v4 installation script
- Pick an ORM library for EE’s SQLite DB and Migrations
- –letsencrypt to work without adding www domain to DNS
Release Link: v4.0.0-beta.3 release