Install a Lightweight container with OpenLiteSpeed 1.6.5+ & PHP 7.3+ based on Ubuntu 18.04 Linux.


  1. Install Docker
  2. Install Docker Compose
  3. Clone this repository or copy the files from this repository into a new folder:
    git clone


Edit the .env file to update the demo site domain, default MySQL user, and password.


Open a terminal, cd to the folder in which docker-compose.yml is saved, and run:

docker-compose up


The docker image installs the following packages on your system:

Component Version
Linux Ubuntu 18.04
OpenLiteSpeed Latest version
MariaDB Stable version: 10.3
PHP Stable version: 7.3
LiteSpeed Cache Latest from
Certbot Latest from Certbot's PPA
WordPress Latest from WordPress

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


Starting a Container

Start the container with the up or start methods:

docker-compose up
You can run with daemon mode, like so:
docker-compose up -d
The container is now built and running.

Stopping a Container

docker-compose stop

Removing Containers

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:

    context: ./config/litespeed/xxx/
      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/ my_password

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.

bash bin/

Creating a Domain and Virtual Host

bash bin/ -add

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/ -domain
Use this command to specify your own names, substituting user_name, my_password, and database_name with your preferred values:
bash bin/ -domain -user user_name -password my_password -database database_name

Installing a WordPress Site

To preconfigure the wp-config file, run the script for your domain, before you use the following command to install WordPress:

./bin/ -app wordpress -domain

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:


Accessing the Database

After installation, you can use Adminer (formerly phpMinAdmin) to access the database by visiting The default username is root, and the password is the same as the one you supplied in the .env file.