• Stars
    star
    194
  • Rank 200,219 (Top 4 %)
  • Language
    Shell
  • License
    MIT License
  • Created almost 6 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OpenLiteSpeed Docker Environment

OpenLiteSpeed WordPress Docker Container

Build Status docker pulls

Install a lightweight WordPress container with OpenLiteSpeed Edge or Stable version based on Ubuntu 22.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-docker-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:

Component Version
Linux Ubuntu 22.04
OpenLiteSpeed Latest version
MariaDB Stable version: 10.5
PHP Latest version
LiteSpeed Cache Latest from WordPress.org
ACME Latest from ACME official
WordPress Latest from WordPress
phpMyAdmin Latest from dockerhub

Data Structure

Cloned project

├── 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 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 WordPress 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 WordPress 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 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 [-A, --app] wordpress [-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 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.

Customization

If you want to customize the image by adding some packages, e.g. lsphp80-pspell, just extend it with a Dockerfile.

  1. We can create a custom folder and a custom/Dockerfile file under the main project.
  2. Add the following example code to Dockerfile under the custom folder
FROM litespeedtech/openlitespeed:latest
RUN apt-get update && apt-get install lsphp80-pspell -y
  1. Add build: ./custom line under the "image: litespeedtech" of docker-composefile. So it will looks like this
  litespeed:
    image: litespeedtech/openlitespeed:${OLS_VERSION}-${PHP_VERSION}
    build: ./custom
  1. Build and start it with command:
docker compose up --build

Support & Feedback

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

Pull requests are always welcome

More Repositories

1

lsquic

LiteSpeed QUIC and HTTP/3 Library
C
1,279
star
2

openlitespeed

Our high-performance, lightweight, open source HTTP server
C++
957
star
3

lscache_wp

LiteSpeed Cache for WordPress
PHP
180
star
4

ols1clk

One click installation of Open LiteSpeed
Shell
142
star
5

ls-qpack

QPACK compression library for use with HTTP/3
C
75
star
6

ols-dockerfiles

Shell
46
star
7

lscache-laravel

LSCache for Laravel framework
PHP
46
star
8

ls-hpack

LiteSpeed HPACK (RFC7541) Library
C
42
star
9

lsmcd

LiteSpeed Memcache Compatible Persistent HA replication Cache Server
C++
39
star
10

ls-cloud-image

Shell
36
star
11

lsws-docker-env

LiteSpeed Enterprise Docker Environment
Shell
30
star
12

lscache-joomla

LSCache plugin for Joomla
PHP
30
star
13

magento2-LiteSpeed_LiteMage

LiteMage Cache Extension for Magento 2
PHP
29
star
14

lscache_prestashop

LiteSpeed Cache Plugin for Prestashop
PHP
26
star
15

lscache-opencart

PHP
26
star
16

lsws-dockerfiles

LiteSpeed Docker Files
Shell
17
star
17

lscache-drupal

LSCache Plugin for Drupal
PHP
14
star
18

lscache-xf2

LSCache Plugin for XenForo 2
PHP
8
star
19

gdoc

Documentation and tool tips for LiteSpeed Web Server, Web ADC, and OpenLiteSpeed.
PHP
8
star
20

ls-sfparser

Structured fields (formerly structured headers) parser, see RFC 8941.
C
7
star
21

lsws-magento-docker-env

Shell
7
star
22

litespeed-prometheus-exporter

Go
7
star
23

qmin

QMIN is a compression mechanism for QUIC headers
C
6
star
24

helm-chart

helm-chart
Mustache
5
star
25

third-party

Third party libraries used by some of our software
Shell
4
star
26

lsmcd_cpanel_plugin

User CPanel plugin for lsmcd
CSS
4
star
27

benchmarks

Various benchmarks
C
4
star
28

openlitespeed-doc

Documentation for OpenLiteSpeed
SCSS
3
star
29

wp-dashboard-notifier

Dashboard notifier for WordPress
PHP
3
star
30

lscache_mediawiki

PHP
3
star
31

packages

Downloadable packages
2
star
32

ngx2ols

PHP
2
star
33

lscache_xf

LiteSpeed Cache for XenForo
PHP
2
star
34

experiment

C
1
star