To learn more on how to run Kapua using Docker, please consult developer manual.
The most recent version of the documentation can be viewed online at:
- http://download.eclipse.org/kapua/docs/develop/user-manual/en/
- http://download.eclipse.org/kapua/docs/develop/developer-guide/en/
You are required to have Docker installed and running.
It is advisable to give to Docker at least 6GB of ram and 2 CPUs.
Just simply run:
./unix/docker-deploy.shPowerShell scripts are also available for Windows OS:
.\win\docker-deploy.ps1After deployment and startup of containers, they can be accessed at the following endpoints
| Application/Service | Endpoint | User | Password | Others |
|---|---|---|---|---|
| H2 SQL | localhost:3306 | kapua | kapua | Schema name: kapuadb |
| Elasticsearch | localhost:9200 | |||
| Message Broker | localhost:1883 | kapua-broker | kapua-password | |
| Admin WEB Console | localhost:8080 | kapua-sys | kapua-password | |
| REST API endpoint | localhost:8081 | kapua-sys | kapua-password | API KEY: 12345678kapua-password |
You can check Docker containers logs to check that everything has started and is running properly, by running:
./unix/docker-logs.shPowershell:
.\win\docker-logs.ps1You can also start check logs with the ./docker-deploy.sh script by providing the --logs option:
./unix/docker-deploy.sh --logsPowershell
.\win\docker-deploy.ps1 --logsTo stop and remove all containers, run:
./unix/docker-undeploy.shPowershell:
.\win\docker-undeploy.ps1This section needs to be updated
To enable Single Sign On (SSO), please refer to deployment/docker/unix/sso/README.md. For more details about the SSO
deployment, please check the docs/developer-guide/en/sso.md SSO developer guide.
Other than the default deployment it is possible to run other versions of Kapua.
By default, the latest version of Kapua will be brought up. You can change the version of Kapua by exporting the
environment variable IMAGE_VERSION. Please also remember to checkout the related git tag first.
Example:
git checkout 1.0.0-M5
export IMAGE_VERSION=1.0.0-M5
./docker-deploy.shDevelopment mode deploys some development components to help development and debugging.
To enable it, provide the --dev option.
Example:
./docker-deploy.sh --devFollowing ports/components will be available:
| Application/Service | Endpoint |
|---|---|
| H2 Web Admin console | localhost:8181 |
| Elasticsearch Browser | localhost:55000 |
The parameters to connect to H2 DB instance are the following
| Parameter | Value |
|---|---|
| Saved Settings | Generic H2 (Server) |
| Driver Class | org.h2.Driver |
| Driver Class | org.h2.Driver |
| JDBC URL | jdbc:h2:tcp://localhost:3306/kapuadb |
| User Name | kapua |
| Password | kapua |
It is to be noted that as an alternative of the web console you can, of course, use whatever database tool you like, for example DBeaver https://dbeaver.io/
Deployed component is already configured to connect to Elasticsearch instance.
Containers can also be remotely debugged. To enable it, provide the --debug option.
Example:
./docker-deploy.sh --debugFollowing ports will be opened
| Application/Service | Remote JVM debug endpoint |
|---|---|
| Message Broker | localhost:5005 |
| Consumer Lifecycle | localhost:8002 |
| Consumer Telemetry | localhost:8001 |
| Service Authentication | localhost:8004 |
| Admin WEB Console | localhost:5007 |
| REST API endpoint | localhost:5006 |
| Job Engine | localhost:5008 |
Containers can be accessed via JMX. For example, you can use it to analyse the JVM using jConsole.
To enable it, provide the --jmx option.
Example:
./docker-deploy.sh --jmxFollowing ports will be opened
| Application/Service | Remote JVM debug endpoint |
|---|---|
| Message Broker | localhost:9875 |
| Consumer Lifecycle | localhost:9876 |
| Consumer Telemetry | localhost:9877 |
| Service Authentication | localhost:9880 |
| REST API endpoint | localhost:9881 |
| Admin WEB Console | localhost:9882 |
| Job Engine | localhost:9883 |
If you want to build containers from the code, you'll need to build the whole Kapua Project.
From the project root directory, run:
mvn clean install -PdockerTo build also the Admin Web Console container, which is excluded by default, add the console profile:
mvn clean install -Pconsole,dockerAfter the build has completed follow the steps from the Running section.
Kapua can be deployed with an SSO provider. To enable it, provide the --sso option.
Example:
./docker-deploy.sh --ssoBy adding this option Kapua will be deployed with an instance of Keycloak SSO provider.
The Keycloack instance can be accessed at the following endpoints:
| Application/Service | Endpoint | User | Password | Notes |
|---|---|---|---|---|
| Keycloak Console | localhost:9090 | admin | admin |
This option is not available on Windows OS at the moment.
Kapua can be deployed with an SSL enabled. To enable it, provide the --ssl option.
SSL will be enabled for the following services
| Application/Service | Endpoint |
|---|---|
| Message Broker | To be implemented |
| Admin WEB Console | localhost:8443 |
| REST API endpoint | localhost:8444 |
The --ssl options configures a self-signed keypair created on the fly.
If you want to provide your certificates, follow the instruction below.
To use an existing certificate, a private key and a CA you can set the following environment variables:
- KAPUA_CRT: The certificate to use
- KAPUA_CA: Optional - The CA chain that validates the certificate
- KAPUA_KEY The private key for the certificate
- KAPUA_KEY_PASSWORD Optional - The password for the private key
All the values should be exported as inline values. e.g.:
export KAPUA_CA=$(cat /path/to/myCA.pem)
export KAPUA_CRT=$(cat /path/to/certificate.crt)
export KAPUA_KEY=$(cat /path/to/private.key)
export KAPUA_KEY_PASSWORD=private_key_passwordPlease notice that these variables must be exported from the shell as shown above. Declare them in a env file or
setting them in the docker-compose file does not work because the command substitution does not happen in these cases.
Otherwise, two environment variables can be used to provide an already existing keystore and its password:
- KAPUA_KEYSTORE: The base64 encoded keystore
- KAPUA_KEYSTORE_PASSWORD: The password for the keystore
Again, All the values should be exported as inline values. e.g.:
export KAPUA_KEYSTORE=$(base64 /path/to/keystore.pkcs)
export KAPUA_KEYSTORE_PASSWORD=keystore_passwordThe info logging level is used as default root level in container logs. To provide a different logging level you can
set the following environment variable:
- LOGBACK_LOG_LEVEL: The logging level value
Allowed logging level values are: trace, debug, info, warn, error, all or off. e.g.:
export LOGBACK_LOG_LEVEL=debug