diff --git a/README.md b/README.md index be29859..2519fb1 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# OpenLiteSpeed WordPress Docker Container (Beta) +# OpenLiteSpeed WordPress Docker Container [![Build Status](https://travis-ci.com/litespeedtech/ols-docker-env.svg?branch=master)](https://hub.docker.com/r/litespeedtech/openlitespeed) -[![OpenLiteSpeed](https://img.shields.io/badge/openlitespeed-1.6.5-informational?style=flat&color=blue)](https://hub.docker.com/r/litespeedtech/openlitespeed) +[![OpenLiteSpeed](https://img.shields.io/badge/openlitespeed-1.6.9-informational?style=flat&color=blue)](https://hub.docker.com/r/litespeedtech/openlitespeed) [![docker pulls](https://img.shields.io/docker/pulls/litespeedtech/openlitespeed?style=flat&color=blue)](https://hub.docker.com/r/litespeedtech/openlitespeed) [![beta pulls](https://img.shields.io/docker/pulls/litespeedtech/openlitespeed-beta?label=beta%20pulls)](https://hub.docker.com/r/litespeedtech/openlitespeed-beta) -Install a Lightweight WordPress container with OpenLiteSpeed 1.6.5+ & PHP 7.3+ based on Ubuntu 18.04 Linux. +Install a Lightweight WordPress container with OpenLiteSpeed [Edge / Stable] version based on Ubuntu 18.04 Linux. ### Prerequisites 1. [Install Docker](https://www.docker.com/) @@ -31,17 +31,40 @@ The docker image installs the following packages on your system: |Linux|Ubuntu 18.04| |OpenLiteSpeed|[Latest version](https://openlitespeed.org/downloads/)| |MariaDB|[Stable version: 10.3](https://hub.docker.com/_/mariadb)| -|PHP|[Stable version: 7.3](http://rpms.litespeedtech.com/debian/)| +|PHP|[Stable version: 7.4](http://rpms.litespeedtech.com/debian/)| |LiteSpeed Cache|[Latest from WordPress.org](https://wordpress.org/plugins/litespeed-cache/)| -|Certbot|[Latest from Certbot's PPA](https://launchpad.net/~certbot/+archive/ubuntu/certbot)| +|ACME|[Latest from ACME official](https://github.com/acmesh-official/get.acme.sh)| |WordPress|[Latest from WordPress](https://wordpress.org/download/)| |phpMyAdmin|[Latest from dockerhub](https://hub.docker.com/r/bitnami/phpmyadmin/)| ## Data Structure -There is a `sites` directory next to your `docker-compose.yml` file, and it contains the following: - -* `sites/DOMAIN/html/` – Document root (the WordPress application will install here) -* `sites/DOMAIN/logs/` - Access log storage +Cloned project +```bash +├── acme +├── bin +│   └── container +├── data +│   └── db +├── logs +│   ├── access.log +│   ├── error.log +│   ├── lsrestart.log +│   └── stderr.log +├── lsws +│   ├── admin-conf +│   └── conf +└── sites +│ └── localhost +├── LICENSE +├── README.md +├── docker-compose.yml +``` + * **acme** contains all applied the cert from Lets Encrypt + * **bin** contains multiple cli scripts to allow you add/del VH, install applications, upgrade ..etc + * **data** Stores mysql db + * **logs** contains all the webserver logs and virtual host access logs + * **lsws** contains all web server config files + * **sites** contains the Document root (the WordPress application will install here) ## Usage ### Starting a Container @@ -64,59 +87,69 @@ To stop and remove all containers, use the `down` command: ``` docker-compose down ``` -### Installing Packages -Edit the `docker-compose.yml` file, and add the package name as an `extensions` argument. We used `vim` in this example: -``` -litespeed: - build: - context: ./config/litespeed/xxx/ - args: - extensions: vim -``` -After saving the changed configuration, run with `--build`: -``` -docker-compose up --build -``` - ### Setting the WebAdmin Password We strongly recommend you set your personal password right away. ``` -bash bin/webadmin.sh my_password +bash bin/webadmin.sh MYPASSWORD ``` ### Starting a Demo Site -After running the following command, you should be able to access the WordPress installation with the configured domain. By default the domain is http://localhost. +After running the following command, you should be able to access the WordPress installation with the configured domain. By default the domain is `https://localhost` and `https://server_IP`. ``` bash bin/demosite.sh ``` ### Creating a Domain and Virtual Host ``` -bash bin/domain.sh -add example.com +bash bin/domain.sh [-add|-a] example.com +``` +### Deleting a Domain and Virtual Host +``` +bash bin/domain.sh [-del|-d] example.com ``` ### Creating a Database You can either automatically generate the user, password, and database names, or specify them. Use the following to auto generate: ``` -bash bin/database.sh -domain example.com +bash bin/database.sh [-domain|-d] example.com ``` Use this command to specify your own names, substituting `user_name`, `my_password`, and `database_name` with your preferred values: ``` -bash bin/database.sh -domain example.com -user user_name -password my_password -database database_name +bash bin/database.sh [-domain|-d] example.com [-user|-u] user_name [-password|-p] my_password [-database|-db] database_name ``` ### Installing a WordPress Site To preconfigure the `wp-config` file, run the `database.sh` script for your domain, before you use the following command to install WordPress: ``` -./bin/appinstall.sh -app wordpress -domain example.com +./bin/appinstall.sh [-app|-a] wordpress [-domain|-d] example.com +``` + +### Install ACME +We need to run amce installation command at **first time only**. +* With email notification +``` +./bin/acme.sh [--install|-i] [--email|-e] EMAIL_ADDR +``` +* Without email notification +``` +./bin/acme.sh [--install|-i] [--no-email|-ne] ``` ### Applying a Let's Encrypt Certificate Use the root domain in this command, and it will check for a certificate and automatically apply one with and without `www`: ``` -./bin/cert.sh example.com +./bin/acme.sh [-domain|-d] example.com ``` ### Update Web Server To upgrade web server to latest stable version, run ``` -bash bin/webadmin.sh -lsup +bash bin/webadmin.sh [-lsup|-upgrade] ``` +### Apply OWASP ModSecurity +Enable OWASP mod_secure on web server, run +``` +bash bin/webadmin.sh [-modsec|-sec] enable +``` +Disable OWASP mod_secure on web server, run +``` +bash bin/webadmin.sh [-modsec|-sec] disable +``` ### Accessing the Database After installation, you can use phpMinAdmin to access the database by visiting http://127.0.0.1:8080 or https://127.0.0.1:8443. The default username is `root`, and the password is the same as the one you supplied in the `.env` file.