diff --git a/README.md b/README.md index ddbcc14..ddc4ebc 100644 --- a/README.md +++ b/README.md @@ -19,40 +19,50 @@ LEMPer stands for Linux, Engine-X (Nginx), MariaDB and PHP installer written in ## Features -* Nginx from [Ondrej's](https://launchpad.net/~ondrej/+archive/ubuntu/nginx) repository. -* Nginx build from [source](https://github.com/nginx/nginx) with [Mod PageSpeed](https://github.com/apache/incubator-pagespeed-ngx) module. -* Nginx with FastCGI cache enable & disable feature (via LEMPer CLI). -* Nginx pre-configured optimization for low-end VPS/cloud server. Need reliable VPS/cloud server? Get one from [UpCloud](https://masedi.net/upcloud/) or [DigitalOcean](https://masedi.net/digitalocean/). -* Nginx virtual host (vhost) configuration optimized for WordPress, and several PHP Frameworks. -* Support HTTP/2 natively for your secure website. -* Free SSL certificates from [Let's Encrypt](https://letsencrypt.org/). -* Get an A+ grade on several SSL Security Test ([Qualys SSL Labs](https://www.ssllabs.com/ssltest/analyze.html?d=masedi.net), [ImmuniWeb](https://www.immuniweb.com/ssl/?id=bVrykFnK), and Wormly). -* Multiple PHP versions 5.6 [EOL], 7.0 [EOL], 7.1 [EOL], 7.2 [EOL], 7.3 [SFO], 7.4, 8.0, 8.1 from [Ondrej's repository](https://launchpad.net/~ondrej/+archive/ubuntu/php). -* Run PHP as user who own the file (Multi-user isolation via FPM pool). Feel the faster Nginx with secure multi-user environment like a top-notch shared hosting. -* Supported PHP Framework and CMS: - * Vanilla PHP: default, - * Framework: codeigniter, laravel, lumen, phalcon, symfony, - * CMS: drupal, mautic, roundcube, sendy, wordpress, wordpress-ms (multi-site), and - * more coming soon. -* PHP Zend OPcache. -* PHP Loader, ionCube & SourceGuardian. +* Nginx - A high performance web server and a reverse proxy server. + * Community package from [Ondrej's Nginx repository](https://launchpad.net/~ondrej/+archive/ubuntu/nginx). + * Custom build from [source](https://github.com/nginx/nginx) featured with : + * [Brotli module](https://github.com/google/ngx_brotli.git) an alternative compression to Gzip + * [Lua Nginx module](https://github.com/openresty/lua-nginx-module) with LuaJIT 2 library + * [PageSpeed module](https://github.com/apache/incubator-pagespeed-ngx) an automatic PageSpeed optimization + * FastCGI [cache purge module](https://github.com/nginx-modules/ngx_cache_purge.git) for atomic cache purging + * Customizable SSL library: OpenSSL (default), LibreSSL, and BoringSSL + * and much more useful 3rd-party modules. + * Pre-configured optimization for low-end VPS/cloud server. Need reliable VPS/cloud server? Get one from [UpCloud](https://masedi.net/upcloud/) or [DigitalOcean](https://masedi.net/digitalocean/). + * Nginx virtual host (vhost) configuration optimized for WordPress and several PHP Frameworks. + * Support HTTP/2 natively for your secure website. + * Free SSL certificates from [Let's Encrypt](https://letsencrypt.org/). + * Get an A+ grade on several SSL Security Test ([Qualys SSL Labs](https://www.ssllabs.com/ssltest/analyze.html?d=masedi.net), [ImmuniWeb](https://www.immuniweb.com/ssl/?id=bVrykFnK), and Wormly). +* PHP - Most used language that [powers 78.9% of all websites](https://w3techs.com/technologies/details/pl-php) around the universe. + * Community package from [Ondrej's PHP repository](https://launchpad.net/~ondrej/+archive/ubuntu/php). + * Multiple PHP versions 5.6 [EOL], 7.0 [EOL], 7.1 [EOL], 7.2 [EOL], 7.3 [EOL], 7.4 [SFO], 8.0, 8.1 (Latest). + * Run PHP as user who own the file (Multi-user isolation via FPM pool). + * Feel the faster Nginx with secure multi-user environment like a top-notch shared hosting. + * Supported PHP Framework and CMS: + * Vanilla PHP: default, + * Framework: codeigniter, laravel, lumen, phalcon, symfony, + * CMS: drupal, mautic, roundcube, sendy, wordpress, wordpress-ms (multi-site), and + * more coming soon. + * PHP Zend OPcache. + * PHP Loader, ionCube & SourceGuardian. * SQL database with MariaDB 10 (MySQL drop-in replacement). * NoSQL database with MongoDB. -* In-memory database with Redis. -* Memory cache with Memcached. -* FTP server with VSFTPD or Pure-FTPd. -* [Adminer](https://www.adminer.org/) web-based SQL & MongoDB database manager (PhpMyAdmin replacement). -* [phpRedisAdmin](https://github.com/erikdubbelboer/phpRedisAdmin) web-based Redis database manager. -* [phpMemcachedAdmin](https://github.com/elijaa/phpmemcachedadmin) web-based Memcached manager. -* [TinyFileManager](https://github.com/joglomedia/tinyfilemanager) alternative web-based filemanager (Experimental). +* Key-value store database with Redis. +* In-memory cache with Memcached. +* FTP server with VSFTPD or Pure-FTPd (_coming soon_). +* Web-based administration tools: + * [Adminer](https://www.adminer.org/) web-based SQL & MongoDB database manager (PhpMyAdmin replacement). + * [phpRedisAdmin](https://github.com/erikdubbelboer/phpRedisAdmin) web-based Redis database manager. + * [phpMemcachedAdmin](https://github.com/elijaa/phpmemcachedadmin) web-based Memcached manager. + * [TinyFileManager](https://github.com/joglomedia/tinyfilemanager) alternative web-based filemanager (Experimental). ## Setting Up * Ensure that you have git installed. -* Clone LEMPer Git repositroy, ```git clone https://github.com/joglomedia/LEMPer.git```. -* Enter LEMPer directory. -* Make a copy of .env.dist to .env ```cp .env.dist .env``` and replace the values. -* Execute install.sh file, ```sudo ./install.sh```. +* Clone LEMPer Git repositroy, ```git clone https://github.com/joglomedia/LEMPer.git``` +* Enter LEMPer directory +* Checkout to the desired version, ```git checkout 2.x.x``` +* Make a copy of .env.dist to .env ```cp .env.dist .env``` and replace the values ### Install LEMPer Stack @@ -81,22 +91,23 @@ Here are some examples of using LEMPer CLI. ##### LEMPer CLI add new vhost / website ```bash -sudo lemper-cli create -u ${USER} -d example.test -f wordpress -w ${HOME}/webapps/example.test --install-skeleton +lemper-cli site add -u ${USER} -d example.test -f wordpress \ +-w ${HOME}/webapps/example.test --install-app ``` :warning: For local/development environment, in order to make the test domain (e.g. example.test) working as expected, you need to do a small workaround by modifying the `/etc/hosts` file. By adding the local domain name to the hosts file and assign it with local/private IP address. -Since version 2.4.0 this workaround could be done via `lemper-cli` by passing `--ipv4` parameter and assign it with private IP address, as below: +Since version 2.4.0, this workaround could be done via `lemper-cli` by passing `--ipv4` parameter and assign it with private IP address, as below: ```bash -sudo lemper-cli create -u ${USER} -d example.test -f wordpress \ --w ${HOME}/webapps/example.test --ipv4=127.0.10.1 --install-skeleton +lemper-cli site add -u ${USER} -d example.test -f wordpress \ +-w ${HOME}/webapps/example.test --ipv4=127.0.10.1 --install-app ``` For more info ```bash -sudo lemper-cli create --help +lemper-cli site add --help ``` ##### LEMPer CLI manage vhost / website @@ -154,15 +165,18 @@ http://YOUR_DOMAIN_NAME:8082/lcp/filemanager * [x] Add network security (iptable rules, firewall configurator, else?) * [x] Add database backup tool (Mariabackup, Percona Xtrabackup, else?) * [x] Add enhanced security (AppArmor, cgroups, jailkit (chrooted/jail users), fail2ban, else?) +* [ ] Add CrowdSec a modern Host-based Intrusion Detection System (replacement option for Fail2ban) +* [ ] Add NodeJS installation to support modern web frontend development +* [ ] Add Pure-FTPd installation as an alternative option to VSFTPD * [ ] Add file backup tool (Borg, Duplicati, Rclone, Restic, Rsnapshot, else?) * [ ] Add server monitoring (Amplify, Monit, Nagios, else?) * [ ] Add user account & hosting package management -Add your feature [request here](https://github.com/joglomedia/LEMPer/issues/new) +Add your feature [request here](https://github.com/joglomedia/LEMPer/issues/new)! ## Security Vulnerabilities and Bugs -If you discover any security vulnerability or any bug within _LEMPer Stack_, please open an [issue](https://github.com/joglomedia/LEMPer/issues/new). +If you discover any security vulnerabilities or any bugs within _LEMPer Stack_, please open an [issue](https://github.com/joglomedia/LEMPer/issues/new). ## Contributing