{"id":14955072,"url":"https://github.com/enginescript/enginescript","last_synced_at":"2025-07-03T16:36:08.323Z","repository":{"id":44246548,"uuid":"191669024","full_name":"EngineScript/EngineScript","owner":"EngineScript","description":"EngineScript is a super fast WordPress server built on Ubuntu and optimized for Cloudflare and Digital Ocean","archived":false,"fork":false,"pushed_at":"2025-07-03T06:05:03.000Z","size":2074,"stargazers_count":15,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-03T06:34:52.743Z","etag":null,"topics":["cloudflare","digital-ocean","digitalocean","linux-server","linux-server-auto-install","mariadb","nginx","nginx-auto-cofiguration","nginx-configuration","php83","sensei","sensei-lms","server-automation","ubuntu","wordfence","wordpress","wordpress-autoinstall","wordpress-performance","wordpress-security","wordpress-site"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EngineScript.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"enginescript","ko_fi":"enginescript","buy_me_a_coffee":"enginescript","liberapay":"enginescript","thanks_dev":"gh/pdowney"}},"created_at":"2019-06-13T01:31:03.000Z","updated_at":"2025-07-03T06:05:07.000Z","dependencies_parsed_at":"2024-03-01T00:21:27.127Z","dependency_job_id":"122fe12d-8a49-465e-a5ba-a7d025bb5775","html_url":"https://github.com/EngineScript/EngineScript","commit_stats":{"total_commits":503,"total_committers":2,"mean_commits":251.5,"dds":0.001988071570576566,"last_synced_commit":"8d471c7a1fed20f8b038e4f17b55222e439e2fc1"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/EngineScript/EngineScript","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngineScript%2FEngineScript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngineScript%2FEngineScript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngineScript%2FEngineScript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngineScript%2FEngineScript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EngineScript","download_url":"https://codeload.github.com/EngineScript/EngineScript/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngineScript%2FEngineScript/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263361224,"owners_count":23454895,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudflare","digital-ocean","digitalocean","linux-server","linux-server-auto-install","mariadb","nginx","nginx-auto-cofiguration","nginx-configuration","php83","sensei","sensei-lms","server-automation","ubuntu","wordfence","wordpress","wordpress-autoinstall","wordpress-performance","wordpress-security","wordpress-site"],"created_at":"2024-09-24T13:10:29.301Z","updated_at":"2025-07-03T16:36:08.307Z","avatar_url":"https://github.com/EngineScript.png","language":"Shell","readme":"# EngineScript\n\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/b8b03bc4beba44a7aee2f879029b2e95)](https://app.codacy.com/gh/EngineScript/EngineScript/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_grade)\n[![GPL License](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![Ubuntu 24.04](https://img.shields.io/badge/Ubuntu-24.04-E95420?logo=ubuntu\u0026logoColor=white)](https://ubuntu.com/)\n[![Nginx Mainline](https://img.shields.io/badge/Nginx-Mainline-009639?logo=nginx\u0026logoColor=white)](https://nginx.org/)\n[![PHP](https://img.shields.io/badge/PHP-8.3-777BB4?logo=php\u0026logoColor=white)](https://www.php.net/)\n[![MariaDB 11.4](https://img.shields.io/badge/MariaDB-11.4-003545?logo=mariadb\u0026logoColor=white)](https://mariadb.org/)\n[![Redis](https://img.shields.io/badge/Redis-DC382D?logo=redis\u0026logoColor=white)](https://redis.io/)\n[![DigitalOcean](https://img.shields.io/badge/DigitalOcean-0080FF?logo=digitalocean\u0026logoColor=white)](https://m.do.co/c/e57cc8492285)\n[![Cloudflare](https://img.shields.io/badge/Cloudflare-F38020?logo=cloudflare\u0026logoColor=white)](https://cloudflare.com/)\n[![WordPress](https://img.shields.io/badge/WordPress-21759B?logo=wordpress\u0026logoColor=white)](https://wordpress.org/)\n[![WP-CLI](https://img.shields.io/badge/WP--CLI-21759B?logo=wordpress\u0026logoColor=white)](https://wp-cli.org/)\n[![ACME.sh](https://img.shields.io/badge/ACME.sh-41BDF5?logo=letsencrypt\u0026logoColor=white)](https://github.com/acmesh-official/acme.sh)\n[![phpMyAdmin](https://img.shields.io/badge/phpMyAdmin-6C78AF?logo=phpmyadmin\u0026logoColor=white)](https://www.phpmyadmin.net/)\n[![AWS CLI](https://img.shields.io/badge/AWS_CLI-232F3E?logo=amazonwebservices\u0026logoColor=white)](https://aws.amazon.com/cli/)\n\n## A High-Performance WordPress Server Built on Ubuntu and Cloudflare\n\nEngineScript automates the process of building a high-performance LEMP server. We've specifically built EngineScript with WordPress users in mind, so the install process will take you from a bare server all the way to a working WordPress installation with Nginx FastCGI cache enabled in about 30 minutes.\n\nEngineScript Release Stage: **Beta**\n\n## Minimum Requirements\n\nEngineScript is meant to be run as the root user on a fresh VPS. Setup will remove existing Apache, Nginx, PHP, and MySQL installations. Things **will** break if you run this script on a VPS that has already been configured.\n\n- **A Newly Created VPS** *([Digital Ocean](https://m.do.co/c/e57cc8492285) droplet recommended)*\n- **Ubuntu 24.04 (64-Bit)** *(Ubuntu 22.04 is also supported but is not recommended)*\n- **2GB RAM**\n- **Cloudflare** *(Free or Paid)*\n\n----------\n\n## Install EngineScript\n\n### Step 1 - Initial Install\n\nRun the following command:\n```shell\nbash \u003c(curl -s https://raw.githubusercontent.com/EngineScript/EngineScript/master/setup.sh)\n```\n\n### Step 2 - Edit Options File\n\nAfter the initial setup script has run, you'll need to alter the install options file. Fill this out completely, making sure to change all variables that say `PLACEHOLDER`.\n\nRun the following command:\n```shell\nes.config\n```\n\n### Step 3 - Main Install Process\n\nOnce you've filled out the configuration file with your personal settings, continue with the main installation process.\n\nRun the following command:\n```shell\nes.install\n```\n\n----------\n\n## Domain Creation\n\n### EngineScript Menu\n\nAfter EngineScript is fully installed, type `es.menu` in console to bring up the EngineScript menu. Choose **1) Domain Configuration Tools**, then select **1) Create New Domain** or **2) Import Domain** to get started adding your first site to the server. If you're moving an existing site into EngineScript, the Import Domain function is fairly robust and should help simplify the process quite a bit.\n\n### Cloudflare\n\nBefore your site is ready to use, you'll need to make sure it has been added to Cloudflare. The scripts that add or import a domain will automatically add or update the DNS records in Cloudflare to point to your server, issue SSL certificates, and apply numerous performance-related settings in Cloudflare.\n\nFor your reference, the settings EngineScript automatically applies can be viewed on our wiki at: [Cloudflare Settings Guide](https://github.com/EngineScript/EngineScript/wiki/Cloudflare-Settings).\n\n### Manual Cloudflare Settings\n\nAlthough we do our best to automate this process, there are a few settings that we don't or can't currently change via the Cloudflare API. We recommend you enable the following settings manually in Cloudflare:\n\n1. Speed Tab: **Cloudflare Fonts**: **On**\n2. Caching Tab: **Crawler Hints**: **On**\n3. Network Tab: **HTTP Strict Transport Security (HSTS)**: **On**\n\n#### Brotli and Gzip from Origin\n\nFor Cloudflare to support compression from origin, the following features must be disabled:\n\n* Email Obfuscation\n* Rocket Loader\n* Server Side Excludes (SSE)\n* Mirage\n* HTML Minification (JavaScript and CSS can remain enabled)\n* Automatic HTTPS Rewrites\n\nFor more information, see [This is Brotli from Origin](https://blog.cloudflare.com/this-is-brotli-from-origin/).\n\n### WordPress Plugins\n\n#### Nginx Helper\n\n1. In WordPress, go to Settings \u003e\u003e Nginx Helper\n2. Check Enable Purge.\n3. Select \"nginx Fastcgi cache\" for Caching Method\n4. Select \"Using a GET request to PURGE/url (Default option)\" for Purging Method.\n5. Check all of the boxes under Purging Conditions.\n6. Save Changes.\n\n#### Other Plugins\n\nEngineScript installs a number of additional plugins when a domain is added to the server. These plugins are purely optional, but may add some valuable functionality to your site. We only enable plugins that are required, so please take a moment to review all of the plugins to see if there is anything else you'd like to enable.\n\nWe've also developed a basic plugin that disables some bloat from the default WordPress experience such as TinyMCE emojis, Jetpack advertisements, and some legacy CSS from widgets and classic themes. There could be some edge-case scenarios where this breaks something specific you're using, but these tweaks are pretty safe for most users.\n\n----------\n\n## Sponsors:\n\nEngineScript development is supported by:\n\nWant to support EngineScript? [Sponsor this project](https://github.com/sponsors/EngineScript).\n\n----------\n\n## EngineScript Information Reference\n\n### EngineScript Locations\n\n|Location|Usage|\n|-|-|\n|**/etc/mysql**                  |MySQL (MariaDB) config |\n|**/etc/nginx**                  |Nginx config |\n|**/etc/php**                    |PHP config |\n|**/etc/redis**                  |Redis config |\n|**/home/EngineScript**          |EngineScript user directories |\n|**/usr/local/bin/enginescript** |EngineScript source |\n|**/var/lib/mysql**              |MySQL database |\n|**/var/log**                    |Server logs |\n|**/var/www/admin/enginescript** |Tools that may be accessed via server IP address or admin.YOURDOMAIN subdomain |\n|**/var/www/sites/*YOURDOMAIN*/html** |Root directory for your WordPress installation |\n\n### EngineScript Commands\n\n|Command|Function|\n|-|-|\n|**`es.backup`**     |Runs the backup script to backup all domains locally and *optionally* in the cloud |\n|**`es.cache`**      |Clear FastCGI Cache, OpCache, and Redis *(server-wide)* |\n|**`es.config`**     |Opens the configuration file in Nano |\n|**`es.debug`**      |Displays debug information for EngineScript |\n|**`es.help`**       |Displays EngineScript commands and locations |\n|**`es.images`**     |Losslessly compress all images in the WordPress /uploads directory *(server-wide)* |\n|**`es.info`**       |Displays server information |\n|**`es.install`**    |Runs the main EngineScript installation script |\n|**`es.menu`**       |EngineScript menu |\n|**`es.permissions`** |Resets the permissions of all files in the WordPress directory *(server-wide)* |\n|**`es.restart`**    |Restart Nginx and PHP |\n|**`es.update`**     |Update EngineScript |\n|**`es.variables`**  |Opens the variable file in Nano. This file resets when EngineScript is updated |\n\n### Software EngineScript Utilizes:\n\n|Software|Version|Source|\n|-|-|-|\n| \t**Certificate Management**\t\t|\n|ACME.sh|Latest|https://get.acme.sh |\n||\n||\n|**Web Server**|\n|NGINX MAINLINE|1.27.5|https://nginx.org/en/download.html |\n|NGINX CACHE PURGE|2.5.3|https://github.com/nginx-modules/ngx_cache_purge |\n|NGINX HEADERS MORE|0.38|https://github.com/openresty/headers-more-nginx-module |\n|NGINX PATCH: Dynamic TLS Records|Latest |https://github.com/kn007/patch|\n|OPENSSL|3.4.1|https://www.openssl.org/source/ |\n|PCRE2|10.45|https://github.com/PCRE2Project/pcre2/releases |\n|ZLIB-Cloudflare|Latest|https://github.com/cloudflare/zlib |\n||\n||\n|**Script Processing**|\n|PHP|8.3|https://launchpad.net/~ondrej/+archive/ubuntu/php |\n||\n||\n|**MySQL Database**|\n|MARIADB|11.4.5|https://mariadb.org/download/ |\n||\n||\n|**Database Management**|\n|ADMINER|||\n|PHPMYADMIN|5.2.2|https://www.phpmyadmin.net/downloads/ |\n||\n||\n|**Object Cache**|\n|REDIS|Latest|https://redis.io/ |\n||\n||\n|**Content Management System (CMS)**|\n|WORDPRESS | Latest |https://wordpress.org |\n|WP-CLI | Latest |https://github.com/wp-cli/wp-cli |\n|WP-CLI: doctor-command | Latest |https://github.com/wp-cli/doctor-command |\n|WP-CLI: WP Launch Check | Latest |https://github.com/pantheon-systems/wp_launch_check |\n|PLUGIN: App for Cloudflare| Latest |https://wordpress.org/plugins/app-for-cf/ |\n|PLUGIN: EngineScript: Simple Site Exporter| 1.5.8 | [https://github.com/EngineScript/Simple-WP-Site-Exporter](https://github.com/EngineScript/Simple-WP-Site-Exporter) |\n|PLUGIN: EngineScript: Simple WP Optimizer| 1.5.4 | [https://github.com/EngineScript/Simple-WP-Optimizer](https://github.com/EngineScript/Simple-WP-Optimizer) |\n|PLUGIN: MariaDB Health Checks *(recommended)* | Latest |https://wordpress.org/plugins/mariadb-health-checks/ |\n|PLUGIN: Nginx Helper *(required)* | Latest |https://wordpress.org/plugins/nginx-helper/ |\n|PLUGIN: PHP Compatibility Checker| Latest |https://wordpress.org/plugins/php-compatibility-checker/ |\n|PLUGIN: Redis Object Cache *(recommended)*| Latest |https://wordpress.org/plugins/redis-cache/ |\n|PLUGIN: The SEO Framework *(recommended)*| Latest |https://wordpress.org/plugins/autodescription/ |\n|PLUGIN: Theme Check| Latest |https://wordpress.org/plugins/theme-check/ |\n|PLUGIN: WP Crontrol| Latest |https://wordpress.org/plugins/wp-crontrol/ |\n|PLUGIN: WP Mail SMTP| Latest |https://wordpress.org/plugins/wp-mail-smtp/ |\n|PLUGIN: WP OPcache *(recommended)*| Latest | https://wordpress.org/plugins/flush-opcache/ |\n||\n||\n|**Security**|\n|MALDETECT|Latest|https://www.rfxn.com/projects/linux-malware-detect/ |\n|PHP-MALWARE-FINDER|Latest|https://github.com/nbs-system/php-malware-finder |\n|UNCOMPLICATED FIREWALL (UFW) || Bundled with Ubuntu |\n|WORDFENCE CLI||https://github.com/wordfence/wordfence-cli/releases |\n|WPSCAN|Latest|https://wpscan.com/ |\n||\n||\n|**Development Tools**|\n|PNGOUT|20200115|http://www.jonof.id.au/kenutils.html |\n|ZIMAGEOPTIMIZER|Latest|https://github.com/zevilz/zImageOptimizer |\n||\n||\n|**Backup Software**|\n|LOCAL BACKUPS|| Bash Scripts |\n|AMAZON AWS CLI|Latest|https://aws.amazon.com/cli/ |\n||\n||\n|**Misc Supplemental Software**|\n|LIBURING|2.9|https://github.com/axboe/liburing |\n|MYSQLTUNER|Latest|https://github.com/major/MySQLTuner-perl |\n|ZLIB|1.3.1|https://github.com/madler/zlib |\n|Admin Control Panel Template|-|https://github.com/bhjoco/onepage-medium |\n\n----------\n","funding_links":["https://github.com/sponsors/enginescript","https://ko-fi.com/enginescript","https://buymeacoffee.com/enginescript","https://liberapay.com/enginescript","https://thanks.dev/gh/pdowney","https://github.com/sponsors/EngineScript"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenginescript%2Fenginescript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fenginescript%2Fenginescript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenginescript%2Fenginescript/lists"}