LEPP (container stack)

Linux (E)Nginx PostgreSQL PHP container stack

LEPP stack is an alternative open source web platform often used to run dynamic web sites and servers. It includes Linux, (E)Nginx, PostgreSQL, and PHP. It is considered by many, as a great platform for development and deployment of high performance web applications which require a solid and reliable foundation.

The TurnKey LEPP container stack is a premade stack, ready for users to host their own apps and easily deploy to the container cloud. It includes a front-facing reverse proxy (Nginx), a database server (PostgreSQL) and a PHP-FPM container.

A LEMP container stack (providing MariaDB database rather than PostgreSQL) is also available. Other container stacks are coming soon.

This is a stack of 3 separate Docker-style containers with pre-configured interaction between them. Currently it is only available to run on AWS ECS via the AWS Marketplace by following this link:

Subscribe to TurnKey LEPP Container stack on AWS Marketplace

Note AWS account required & usage fees apply.


The database is automatically initialized for the respective application and the front-facing webserver (Nginx) automatically picks up the required virtual host from /etc/turnkey/vhosts volume.

NOTE: when deploying your own applications on top of LEMP, take care to use "" and NOT "localhost" as PostgreSQL server host. This is important due to the technical limitations of PostgreSQL.

Environment variables:

INIT_URL: URL of initialization bootstrap file. Can be one of:
    - a .tar.gz archive to be unpacked to /var/www/html
    - a Git repo to clone to /var/www/html
    - a .sh script to execute in /var/www/html

INIT_POST: command to execute after initialization with INIT_URL finishes.
PURGE_BOOTSTRAP: if set to yes, bootstrap tools (curl and git) will be purged before launching the payload.

GIT_BRANCH: optional branch if other than "master"
CURL_OPTS: optinal arguments to curl (which is used to download bootstrap)

NO_STDOUT_REDIR: write to /var/log/nginx/access.log instead of the container's stdout
NO_STDERR_REDIR: write to /var/log/nginx/error.log instead of the container's stderr

POSTGRES_INITDB_ARGS: additional arguments to supply to "initdb" when creating database
POSTGRES_INITDB_XLOGDIR: logdir for initdb

DB_NAME: name of database the application uses; default is application name
DB_USER: name of database user of the application; default is application name
DB_PASS: password used by the application to access the database; default is randomly generated and automatically
         shared between the app