You must build the docker image provided in this directory by using the following command:
mvn clean install
This project will also generate Docker standalone project files in target/filtered-docker as well as position the
required Unomi tarball.
Unomi requires a search engine (ElasticSearch or OpenSearch) so it is recommended to run Unomi and the search engine using docker-compose:
mvn docker:start
You will need to wait while Docker builds the containers and they boot up (the search engine will take a minute or two). Once they are up you can check that the Unomi services are available by visiting http://localhost:8181 in a web browser.
If you want to run it without docker-compose you should then make sure you setup the following environments properly.
For ElasticSearch:
docker pull docker.elastic.co/elasticsearch/elasticsearch:9.2.1
docker network create unomi
docker run -d --name elasticsearch --net unomi -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
-e cluster.name=contextElasticSearch \
docker.elastic.co/elasticsearch/elasticsearch:9.2.1For OpenSearch:
docker pull opensearchproject/opensearch:3.0.0
docker network create unomi
export OPENSEARCH_ADMIN_PASSWORD=enter_your_custom_admin_password_here
docker run -d --name opensearch --net unomi -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_ADMIN_PASSWORD} \
opensearchproject/opensearch:3.0.0For Unomi (with ElasticSearch):
docker pull apache/unomi:3.1.0-SNAPSHOT
docker run -d --name unomi --net unomi -p 8181:8181 -p 9443:9443 -p 8102:8102 \
-e UNOMI_ELASTICSEARCH_ADDRESSES=elasticsearch:9200 \
apache/unomi:3.1.0-SNAPSHOTFor Unomi (with OpenSearch):
docker pull apache/unomi:3.1.0-SNAPSHOT
docker run -d --name unomi --net unomi -p 8181:8181 -p 9443:9443 -p 8102:8102 \
-e UNOMI_DISTRIBUTION=unomi-distribution-opensearch \
-e UNOMI_OPENSEARCH_ADDRESSES=opensearch:9200 \
-e UNOMI_OPENSEARCH_PASSWORD=${OPENSEARCH_ADMIN_PASSWORD}
apache/unomi:3.1.0-SNAPSHOTFor ElasticSearch:
docker run -d --name unomi -p 8181:8181 -p 9443:9443 -p 8102:8102 \
-e UNOMI_ELASTICSEARCH_ADDRESSES=host.docker.internal:9200 \
apache/unomi:3.1.0-SNAPSHOTFor OpenSearch:
docker run -d --name unomi -p 8181:8181 -p 9443:9443 -p 8102:8102 \
-e UNOMI_DISTRIBUTION=unomi-distribution-opensearch
-e UNOMI_OPENSEARCH_ADDRESSES=host.docker.internal:9200 \
-e UNOMI_OPENSEARCH_PASSWORD=${OPENSEARCH_ADMIN_PASSWORD} \
apache/unomi:3.1.0-SNAPSHOTNote: Linux doesn't support the host.docker.internal DNS lookup method yet, it should be available in an upcoming version of Docker. See docker/for-linux#264
UNOMI_AUTO_START: Boolean to specify if unomi auto start with karaf (defaults totrue)UNOMI_DISTRIBUTION: Specifies the Unomi Distribution Feature to use (unomi-distribution-elasticsearchorunomi-distribution-opensearch, defaults tounomi-distribution-elasticsearch)
UNOMI_ELASTICSEARCH_ADDRESSES: ElasticSearch host:port (default: localhost:9200)UNOMI_ELASTICSEARCH_USERNAME: Optional username for ElasticSearchUNOMI_ELASTICSEARCH_PASSWORD: Optional password for ElasticSearchUNOMI_ELASTICSEARCH_SSL_ENABLE: Enable SSL for ElasticSearch connection (default: false)
UNOMI_OPENSEARCH_ADDRESSES: OpenSearch host:port (default: localhost:9200)UNOMI_OPENSEARCH_PASSWORD: Required admin password for OpenSearch (SSL and authentication are mandatory)
If you want to rebuild the images or use docker compose directly, you must still first use mvn clean install to generate
the filtered project in target/filtered-docker.
You can then use docker compose -f docker-compose-es.yml up to start the project with ElasticSearch or docker compose -f docker-compose-os.yml up to start the project with OpenSearch.
