WordPress in a 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 setup 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

  • agentless
  • 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 any possibly early adapters. 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!

Leave a Reply

Your email address will not be published. Required fields are marked *