Running the platform
To get the platform running, you first need to configure your local environment. This involves setting environment variables to select the edition you want to run (Community or Enterprise) and providing the file paths to your licenses. Once these prerequisites are set, you can launch the services using docker compose
. You have two primary options: you can start all services (Kpow, Flex, and Pinot) together for a fully integrated experience, or you can run Kpow and Flex independently for more focused use cases. When you are finished, remember to run the corresponding down
command to stop and remove the containers, and unset the environment variables to clean up your session.
1. Prerequisite: configure your environment
Before running any commands, configure your shell environment by uncommenting and setting the following variables in your terminal.
# --- Configuration ---
# Edition (choose one by uncommenting the lines)
# For Enterprise Edition:
# unset KPOW_SUFFIX
# unset FLEX_SUFFIX
# For Community Edition:
# export KPOW_SUFFIX="-ce"
# export FLEX_SUFFIX="-ce"
# Licenses (provide the path to your license .env files)
# export KPOW_LICENSE="/path/to/your/kpow-license.env"
# export FLEX_LICENSE="/path/to/your/flex-license.env"
2. Choose your launch method
Option A: run the complete platform
This is the standard method and launches all services together on a shared network.
💡Although it demonstrates deploying all environments, you may choose to exclude one or more. Note, however, that Apache Pinot depends on the ZooKeeper service included in the Kpow stack.
To start all services:
docker compose -p kpow -f ./compose-kpow.yml up -d \
&& docker compose -p flex -f ./compose-flex.yml up -d \
&& docker compose -p pinot -f compose-pinot.yml up -d \
&& docker compose -p obsv -f ./compose-obsv.yml up -d
To stop all services:
docker compose -p obsv -f ./compose-obsv.yml down \
&& docker compose -p pinot -f compose-pinot.yml down \
&& docker compose -p flex -f ./compose-flex.yml down \
&& docker compose -p kpow -f ./compose-kpow.yml down
Option B: run services individually
This method is useful if you only need a specific component.
To start Kpow only:
docker compose -p kpow -f ./compose-kpow.yml up -d
To start Flex only:
This command creates a dedicated Docker network for the Flex stack instead of using an external one.
USE_EXT=false docker compose -p flex -f ./compose-flex.yml up -d
💡 Note again that Apache Pinot cannot be started on its own because it depends on the ZooKeeper service included in the Kpow stack.
To stop individual services:
# Stop Kpow
docker compose -p kpow -f ./compose-kpow.yml down
# Stop Flex
USE_EXT=false docker compose -p flex -f ./compose-flex.yml down
3. Clean up your environment
After stopping the services, run this command to unset the environment variables from your terminal session.
unset KPOW_SUFFIX FLEX_SUFFIX KPOW_LICENSE FLEX_LICENSE