Official build of LiteSpeed, High performance, HTTP/3 supported, ready to use
100K+
Install a Lightweight WordPress container with LiteSpeed stable version based on Ubuntu 26.04 Linux.
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 litespeed and php versions.
Clone this repository or copy the files from this repository into a new folder:
git clone https://github.com/litespeedtech/lsws-docker-env.git
git clone https://github.com/litespeedtech/lsws-magento-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.
The docker image installs the following packages on your system:
| Component | Version |
|---|---|
| Linux | Ubuntu 26.04 |
| LiteSpeed | Latest version |
| MariaDB | Stable version: 11.8 |
| PHP | Latest version |
| LiteSpeed Cache | Latest from WordPress.org |
| ACME | Latest from ACME official |
| WordPress | Latest from WordPress |
| Magento | Version 2.4+ |
| phpMyAdmin | Latest from dockerhub |
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 webserver logs and virtual host access logs
lsws contains all web server configuration files
sites contains the document roots (the WordPress application will install here)
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.
Note: The container will auto-apply a 15-day trial license. Please contact LiteSpeed to extend the trial, or apply your own license, starting from $0.
docker compose stop
To stop and remove all containers, use the down command:
docker compose down
We strongly recommend you set your personal password right away.
bash bin/webadmin.sh my_password
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 -W
After running the following command, you should be able to access the Magento installation with the configured domain. By default the domain is http://localhost.
bash bin/demosite.sh -M
bash bin/domain.sh [-A, --add] example.com
bash bin/domain.sh [-D, --del] example.com
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
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
To preconfigure the magento file, run the database.sh script for your domain, before you use the following command to install Magento:
./bin/appinstall.sh [-A, --app] Magento [-D, --domain] example.com
Magento with Sample data
./bin/appinstall.sh [-A, --app] Magento [-D, --domain] example.com [-S, --sample]
We need to run the ACME installation command the first time only. With email notification:
./bin/acme.sh [-I, --install] [-E, --email] EMAIL_ADDR
Without email notification:
./bin/acme.sh [-I, --install] [-NE, --no-email]
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.
To upgrade the webserver to the latest stable version, run the following:
bash bin/webadmin.sh [-U, --upgrade]
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
Apply for your license with the command:
bash bin/webadmin.sh [-S, --serial] YOUR_SERIAL
Apply trial license to the server with command:
bash bin/webadmin.sh [-S, --serial] TRIAL
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:
8080:80) from docker-compose.yml to hide them from the public.To proxy phpMyAdmin:
phpmyadmin./, and Web Server is phpmyadmin.If you want to customize the image by adding some packages, e.g. lsphp83-pspell, just extend it with a Dockerfile.
custom folder and a custom/Dockerfile file under the main project.Dockerfile under the custom folderFROM litespeedtech/litespeed:latest
RUN apt-get update && apt-get install lsphp83-pspell -y
build: ./custom line under the "image: litespeedtech" of docker-composefile. So it will looks like this litespeed:
image: litespeedtech/litespeed:${LSWS_VERSION}-${PHP_VERSION}
build: ./custom
docker compose up --build
If you still have a question after using LiteSpeed Docker, you have a few options.
Pull requests are always welcome
Content type
Image
Digest
sha256:a56ecf9d8…
Size
201.3 MB
Last updated
1 day ago
docker pull litespeedtech/litespeed