Project: WordPress in a (LEMP) box!

There are plenty of scripts in the internet, some of them even open source, that helps us to install WordPress automatically in a (single) server. Bitnami is the most popular among them. However, none of them met my requirements. I have some design considerations, security requirements and performance checklists. Since none of the existing tools met all my principles, I started developing my own tool to set up a (single) WordPress site in a (tiny) server.

Here are my goals in mind when developing such a tool…

Generic Goals

Performance Checklist

  • Redis for object cache (memcached as an alternative / backup)
  • WP Super Cache as full page cache (with Batcache as an alternative / backup)
  • No Apache (long live Apache!)
  • PHP 7.x
  • Nginx
  • Varnish (planned, but no ETA)
    • Why Varnish: to quickly deploy geo-distributed nodes

Security Considerations

  • only ports 80, 443, and port for SSH are open
  • no phoning home
  • no external dependencies (such as third-party repositories)
  • automatic security updates (with an option to update everything)
  • disable password authentication for root
  • Nginx (possibly with Naxsi WAF when h2 issue is resolved)
  • umask 027 or 077
  • ACL integration
  • weekly logwatch (if email is supplied)

Implementation Details

  • agent-less
  • random username (like GoDaddy generates)
  • no extra / third-party packages
  • automatic restart of MySQL (and Varnish) upon failure
  • automatic backup of site (files and DB) to AWS S3
  • Integrated wp-cli
  • Support for version control (git, hg)
  • Composer support

Web Interface

  • Based on OpulencePHP or similar framework
  • LetsEncrypt support (the famous 1-click installation of SSL)
  • Backups download and restoration!

Progress

As you may have guessed, there is a huge work involved. Fortunately, I have started going in the right direction due to somewhat clear goals to back me up.

Please check it out in its Github repo… https://github.com/pothi/wp-in-a-box

What’s developed so far is enough for my current needs. I wouldn’t want to spend too much time on this project, if there are no takers. So, I am awaiting some feedback from early adopters. If you are one of them, please comment here on what you think of its various goals. You may also give a thumbs up by staring it in Github. If you used it and if you notice any issue/s, please feel free to open an issue in Github. All feedback is welcomed!

A huge thanks for Mail-In-A-Box for the inspiration!

4 Replies to “Project: WordPress in a (LEMP) box!”

  1. Hello,
    I have question I’m very new to Redis & memcached.
    Why did you choose Redis over memcached? I would like to know.
    Thanks

    1. I don’t remember why I started using Redis over memcached. I think it is because of variety of options that I had with Redis to integrate it with WordPress (as WP Object Cache).

Leave a Reply

Your email address will not be published. We use cookies to prevent spam comments. Required fields are marked *

css.php