Create a demo site for your Docker-based web application.
A big shout out to @louislam, the original creator of demo-kuma, for developing this amazing tool. Go give him a ⭐; he deserves it!
- Quickly create a demo for your project.
- Automated deployment of the Docker application stack upon HTTP request.
- Automatic shutdown of the stack when the time is up.
- Countdown timer displayed in the bottom right corner.
- Customisable demo duration.
- Single port operation.
- Create a stack directory named
demo-shelf
(IMPORTANT: Docker uses this for the network name, and this application relies on it). - Download
compose.yaml
andcompose-demo.yaml
into the directory.compose.yaml
: This file defines the Demo Shelf stack.- Review all variables in the
environment:
section.
- Review all variables in the
compose-demo.yaml
: This file defines your demo stack.- By default, the main service should be named
main
, and the network name should bedemo-shelf_default
. - If your repository or root folder name is not
demo-shelf
, change the network name to{your-repo/root-folder-name}_default
.
- By default, the main service should be named
- Run the command
docker compose up -d
. - (Optional) If you are in development mode, navigate to http://localhost:3003/start-demo to test the demo.
- Demo Shelf takes control of your Docker environment, so ensure you run this in an isolated virtual machine or on a dedicated server.
- The user sends an HTTP request via a browser to initialise the demo.
- Demo Shelf assigns a session ID for this request and spins up the stack defined in
compose-demo.yaml
. - Once the demo stack is started, Demo Shelf acts as a reverse proxy to facilitate communication between the browser and the individual demo stack. This is why we set the
demo-shelf_default
network toexternal
in the demo stack. - A timer is initiated simultaneously. When the time is up, Demo Shelf will shut down the stack.