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.yamlandcompose-demo.yamlinto 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_defaultnetwork toexternalin the demo stack. - A timer is initiated simultaneously. When the time is up, Demo Shelf will shut down the stack.



