Sign inSign up

litespeedtech/openlitespeed-drush

By litespeedtech

Updated 18 days ago

OpenLiteSpeed with composer and Drush packages.

Image
Web servers
Content management system
0

3.1K

litespeedtech/openlitespeed-drush repository overview

OpenLiteSpeed Docker Container

Build Status docker pulls

Install a lightweight OpenLiteSpeed container using either the Edge or Stable version in Ubuntu 24.04 Linux.

Prerequisites

Build Components

The system will regularly build OpenLiteSpeed Latest stable versions, along with the last two PHP versions.

Usage

Download an image

Download the openlitespeed Drush image, we can use latest for the latest version

docker pull litespeedtech/openlitespeed-drush:latest

or specify the OpenLiteSpeed version with lsphp version

docker pull litespeedtech/openlitespeed-drush:1.8.2-lsphp83
Start a Container
docker run --name openlitespeed-drush -p 7080:7080 -p 80:80 -p 443:443 -it litespeedtech/openlitespeed-drushd:latest

You can also run with Detached mode, like so:

docker run -d --name openlitespeed-drush -p 7080:7080 -p 80:80 -p 443:443 -it litespeedtech/openlitespeed-drush:latest

Tip, you can get rid of -p 7080:7080 from the command if you don’t need the web admin access.

Add a sample page

The server should start running successfully, and you should be able to log into the container. Add some files you want to display with the following command:

docker exec -it openlitespeed-drush bash

Your default WORKDIR should be /var/www/vhosts/, since the default document root path is /var/www/vhosts/localhost/html/web. Simply add the following command to index.php, then we can verify it from the browser with a public server IP address on both HTTP and HTTPS.

mkdir -p /var/www/vhosts/localhost/html/web
echo '<?php phpinfo();' > localhost/html/web/index.php
Stop a Container

Feel free to substitute the "openlitespeed-drush" to the "Container_ID" if you did not define any name for the container.

docker stop openlitespeed-drush

Customization

Sometimes you may want to install more packages from the default image, or some other web server or PHP version which is not officially provided. You can build an image based on an existing image. Here’s how:

  1. Download the dockerfile project
  2. cd into the project directory
  3. Edit the Dockerfile here if necessary
  4. Build, feeling free to substitute server and PHP versions to fit your needs

For example,

git clone https://github.com/litespeedtech/ols-drupal-env.git
cd ols-drupal-env/ols-dockerfiles/template
bash build.sh -O 1.8.2 -P lsphp83

Install a Drupal container with OpenLiteSpeed based on Ubuntu 24.04 Linux.

Prerequisites
  1. Install Docker
  2. Install Docker Compose

Configuration

Edit the .env file to update the demo site domain, default MySQL user, and password. Feel free to check Docker hub Tag page if you want to update default openlitespeed and php versions.

Installation

Clone this repository or copy the files from this repository into a new folder:

git clone https://github.com/litespeedtech/ols-drupal-env.git

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

docker compose up

Note: If you wish to run a single web server container, please see the usage method here.

Components

The docker image installs the following packages on your system:

Data Structure

Cloned project

├── acme
├── bin
│   └── container
├── data
│   └── db
├── logs
│   ├── access.log
│   ├── error.log
│   ├── lsrestart.log
│   └── stderr.log
├── lsws
│   ├── admin-conf
│   └── conf
├── ols-dockerfiles
│   ├── template
|   └── README.md
├── sites
│   └── localhost
├── LICENSE
├── README.md
└── docker-compose.yml
  • acme contains all applied certificates from Lets Encrypt

  • bin contains multiple CLI scripts to allow you add or delete virtual hosts, install applications, upgrade, etc

  • data stores the MySQL database

  • logs contains all of the web server logs and virtual host access logs

  • lsws contains all web server configuration files

  • sites contains the document roots (the Drupal application will install here)

Usage

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
Setting the WebAdmin Password

We strongly recommend you set your personal password right away.

bash bin/webadmin.sh my_password
Starting a Demo Site

After running the following command, you should be able to access the Drupal installation with the configured domain. By default the domain is http://localhost.

bash bin/demosite.sh
Creating a Domain and Virtual Host
bash bin/domain.sh [-A, --add] example.com

Please ignore SSL certificate warnings from the server. They happen if you haven't applied the certificate.

Deleting a Domain and Virtual Host
bash bin/domain.sh [-D, --del] 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 [-D, --domain] 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 [-D, --domain] example.com [-U, --user] USER_NAME [-P, --password] MY_PASS [-DB, --database] DATABASE_NAME
Installing a Drupal Site

Run the database.sh script for your domain, before you use the following command to install Drupal:

./bin/appinstall.sh [-A, --app] drupal [-D, --domain] example.com
Install ACME

We need to run the ACME installation command the first time only. With email notification:

./bin/acme.sh [-I, --install] [-E, --email] EMAIL_ADDR
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/acme.sh [-D, --domain] example.com

Other parameters:

  • [-r, --renew]: Renew a specific domain with -D or --domain parameter if posibile. To force renew, use -f parameter.

  • [-R, --renew-all]: Renew all domains if possible. To force renew, use -f parameter.

  • [-f, -F, --force]: Force renew for a specific domain or all domains.

  • [-v, --revoke]: Revoke a domain.

  • [-V, --remove]: Remove a domain.

Update Web Server

To upgrade the web server to latest stable version, run the following:

bash bin/webadmin.sh [-U, --upgrade]
Apply OWASP ModSecurity

Enable OWASP mod_secure on the web server:

bash bin/webadmin.sh [-M, --mod-secure] enable

Disable OWASP mod_secure on the web server:

bash bin/webadmin.sh [-M, --mod-secure] disable

Please ignore ModSecurity warnings from the server. They happen if some of the rules are not supported by the server.

Accessing the Database

After installation, you can use phpMyAdmin to access the database by visiting http://127.0.0.1:8080. The default username is root, and the password is the same as the one you supplied in the .env file.

To secure phpMyAdmin:

  1. Remove the public ports (8080:80) from docker-compose.yml to hide them from the public.
  2. Follow phpMyAdmin's Docker guide to connect to the database over SSL.

To proxy phpMyAdmin:

  1. Point a domain to a virtual host, e.g. Example, and add the domain mapping to the listeners.
  2. Set up an External App in LSWS and set Address to phpmyadmin.
  3. Add a proxy Context where URl is /, and Web Server is phpmyadmin.

Support & Feedback

If you still have a question after using OpenLiteSpeed Docker, you have a few options.

Pull requests are always welcome

Tag summary

Content type

Image

Digest

sha256:cd78138ce

Size

271.8 MB

Last updated

18 days ago

docker pull litespeedtech/openlitespeed-drush