EngineScript automates the process of building a high-performance LEMP server. We built EngineScript with WordPress users in mind, so the install process takes you from a bare server to a working WordPress installation with Nginx FastCGI cache enabled in about 30 minutes.
EngineScript Release Stage: Beta
Run EngineScript as the root user on a fresh VPS. Setup removes existing Apache, Nginx, PHP, and MySQL installations. Existing services will break if you run this script on a VPS that already has software configured.
- A Newly Created VPS (DigitalOcean droplet recommended)
- Ubuntu 24.04 (64-bit)
- 2 GB RAM
- Cloudflare (Free or Paid)
Run the following command:
bash <(curl -s https://raw.githubusercontent.com/EngineScript/EngineScript/master/setup.sh)After the initial setup script runs, update the install options file. Replace every PLACEHOLDER value before continuing.
Run the following command:
es.configOnce you've filled out the configuration file with your personal settings, continue with the main installation process.
Run the following command:
es.installAfter EngineScript is fully installed, type es.menu at the console to open the EngineScript menu. Choose 1) Domain Configuration Tools, then select 1) Create New Domain or 2) Import Domain to add your first site to the server. If you're moving an existing site into EngineScript, the Import Domain function helps simplify the process.
Before your site is ready to use, add it to Cloudflare. The scripts that add or import a domain automatically add or update Cloudflare DNS records to point to your server, issue SSL certificates, and apply several performance-related Cloudflare settings.
For reference, see the settings EngineScript automatically applies in the Cloudflare Settings Guide.
Although we do our best to automate this process, there are a few settings that we do not currently change through the Cloudflare API. We recommend enabling the following settings manually in Cloudflare:
- Speed Tab: Cloudflare Fonts: On
- Caching Tab: Crawler Hints: On
- Network Tab: HTTP Strict Transport Security (HSTS): On
For Cloudflare to support compression from origin, the following features must be disabled:
- Email Obfuscation
- Rocket Loader
- Server-Side Excludes (SSE)
- Mirage
- HTML Minification (JavaScript and CSS can remain enabled)
- Automatic HTTPS Rewrites
For more information, see This is Brotli from Origin.
- In WordPress, go to Settings >> Nginx Helper
- Check Enable Purge.
- Select "nginx FastCGI cache" for Caching Method
- Select "Using a GET request to PURGE/url (Default option)" for Purging Method.
- Check every box under Purging Conditions.
- Save Changes.
EngineScript installs plugins when a domain is added to the server. These plugins are optional, but they may add useful functionality to your site. Required plugins are enabled automatically, so review the installed plugins to see if there is anything else you'd like to enable.
We also developed a basic plugin that disables some bloat from the default WordPress experience, such as TinyMCE emojis, Jetpack advertisements, and legacy CSS from widgets and classic themes. These tweaks are safe for most users, but there may be edge cases where they affect something specific to your site.
EngineScript development is supported by:
Want to support EngineScript? Sponsor this project.
| Location | Usage |
|---|---|
| /etc/mysql | MySQL (MariaDB) config |
| /etc/nginx | Nginx config |
| /etc/php | PHP config |
| /etc/redis | Redis config |
| /home/EngineScript | EngineScript user directories |
| /usr/local/bin/enginescript | EngineScript source |
| /var/lib/mysql | MySQL database |
| /var/log | Server logs |
| /var/www/admin/control-panel | EngineScript Admin Dashboard |
| /var/www/admin/tools | Admin tools (phpMyAdmin, TinyFileManager, phpSysInfo, Adminer) |
| /var/www/sites/YOURDOMAIN/html | Root directory for your WordPress installation |
| Command | Function |
|---|---|
es.backup |
Runs the backup script to back up all domains locally and optionally in the cloud |
es.cache |
Clears FastCGI cache, OPcache, and Redis (server-wide) |
es.config |
Opens the configuration file in Nano |
es.debug |
Displays debug information for EngineScript |
es.help |
Displays EngineScript commands and locations |
es.images |
Losslessly compress all images in the WordPress /uploads directory (server-wide) |
es.info |
Displays server information |
es.install |
Runs the main EngineScript install script |
es.menu |
EngineScript menu |
es.permissions |
Resets the permissions of all files in the WordPress directory (server-wide) |
es.restart |
Restarts Nginx and PHP |
es.sites |
Lists all WordPress sites installed on the server with status information |
es.update |
Updates EngineScript |
es.variables |
Opens the variable file in Nano. This file resets when EngineScript is updated |
EngineScript includes a comprehensive web-based admin control panel accessible at https://admin.yourdomain.com. The control panel provides:
- Server monitoring and management tools
- Uptime monitoring and reporting for all WordPress sites
- Web-based file management with Tiny File Manager
- Quick access to common server management tasks and tools