Following is the list of Docker images that are maintained by EasyEngine team:
- easyengine/nginx-proxy
- easyengine/nginx
- easyengine/php
- easyengine/mariadb
- easyengine/redis
- easyengine/postfix
- easyengine/mailhog
- easyengine/cron
easyengine/nginx-proxy
It is a fork of jwilder/nginx-proxy that routes request to individual site’s nginx containers. We’ve modified nginx-proxy’s go template used to generate config to support some changes that EasyEngine needed such as –
- Allow routing based on path instead of just host
- Change Basic Auth file structure to support authentication only on admin-tools vs entire site.
- Add IP whitelisting support using nginx allow module
Note: SSL is terminated at nginx-proxy.
easyengine/nginx
Every site will have it’s own nginx container. They will be created from this image.
Previously we used to manage our own nginx build. But in v4, we’ve decided to use openresty since it has all the nginx modules we need.
easyengine/php
It runs PHP process and has other utilities such as WP-CLI.
The list of php modules is here.
easyengine/mariadb
Mariadb database container.
easyengine/redis
Redis is used for full page caching and WordPress object caching.
easyengine/postfix
Postfix is used to send emails. We highly recommend you to use external email sending service such as Amazon SES on sites where emails are critical such as e-commerce sites.
For Amazon SES, you can use aws-ses-wp-mail plugin.
Postfix is not necessary and could be disabled in such case. The feature to disable postfix will be available in future EasyEngine releases.
easyengine/mailhog
Mailhog serves as a mailcatcher utility when you do not want your mail to go out of your server. This is desirable in dev/test environment.
If you have enabled mailhog, postfix will send emails to mailhog.
easyengine/cron
It is used to manage crons in EasyEngine. Uses ofelia to schedule crons.
Here is documentation on how to add cron.