File | Date | Author | Commit |
---|---|---|---|
.github | 2021-05-01 |
![]() |
[83881c] Update python-package.yml |
app | 2021-05-04 |
![]() |
[8b6d78] AwsCompatibleSqlClient |
.gitignore | 2021-03-31 |
![]() |
[1e22ec] init |
DEV.md | 2021-04-02 |
![]() |
[407344] readme |
Dockerfile | 2021-04-06 |
![]() |
[8f1df0] auth |
MANIFEST.in | 2021-03-31 |
![]() |
[1e22ec] init |
README.md | 2021-05-04 |
![]() |
[f8717b] README.md |
_config.yml | 2021-04-29 |
![]() |
[50b1dc] Set theme jekyll-theme-minimal |
docker-compose-auth-test.yaml | 2021-05-04 |
![]() |
[af1552] AwsCompatibleSqlClient |
docker-compose.yaml | 2021-04-06 |
![]() |
[8f1df0] auth |
docker-standalone.yaml | 2021-05-04 |
![]() |
[062c07] AwsCompatibleSqlClient |
requirements.txt | 2021-05-01 |
![]() |
[deb124] init tests - error fix |
setup.py | 2021-05-01 |
![]() |
[deb124] init tests - error fix |
Tracardi is a Graphic User Interface based on Apache Unomi.
Unomi is an open-source Customer Data Platform that allows anyone to collect user-profiles and manage them in a very robust way.
In order to run Tracardi you must have docker installed on your linux machine. Please refer to docker installation manual
to see how to install docker.
Once the docker is installed go to main folder of tracardi and run.
docker-compose build
docker-compose up
This will build and install tracardi and all required dependencies such as unomi and elastic on your computer.
Hence that this type of setup is for demonstration purpose only.
After a while when everything is downloaded and installed open browser and go to http://0.0.0.0/app
Login with default:
user: karaf
password: karaf
Default user and password are configured in a docker compose file:
Access to Tracardi interface is restricted by the Unomi password.
If you change Unomi password you will have to change it in Tracardi
as well.
Tracardi allows for:
Customer Data Integration - You can ingest, aggregate and store customer data
from multiple sources in real time at any scale and speed due to elastic search backend.
Customer Data Modelling - You can manage data. Define rules that will model data delivered
from your page and copy it into user profile. You can segment customers into custom segments.
User Experience Personalization - You can personalize user experience with
real-time customer segmentation and targeting.
Profile Unification - You can merge customer data from various sources to
single profile. Auto de-duplicate customer records. Blend customers in one account.
Automation - TRACARDI is a great framework for creating
marketing automation apps. You can send your data to other systems easily
Browsing events
Editing rules
If you experience:
ERROR: for tracardi_tracardi_1 Cannot start service
tracardi: driver failed programming external connectivity
on endpoint tracardi_tracardi_1
Error starting userland proxy: listen tcp4 0.0.0.0:80:
bind: address already in use
That means you have something running on port 80. Change docker-compose.yaml to map
Tracardi to different port.
tracardi:
build: .
environment:
UNOMI_PROTOCOL: http
UNOMI_HOST: unomi
UNOMI_PORT: 8181
UNOMI_USERNAME: karaf
UNOMI_PASSWORD: karaf
ELASTIC_HOST: elasticsearch
ELASTIC_PORT: 9200
ports:
- 8081:80 <- CHANGE HERE
depends_on:
- unomi
- elasticsearch
If you see error in source section similar to this screenshot:
This can be ignored. Once you create first source it disappears. Next version of Tracardi will
display alert about empty source index. Currently we are not enforcing creation of empty indexes.
Index is created with the first created record.
If you experience Authentication Error please take a closer look at the Tracardi configuration.
You probably need to provide a username and password for an elastic-search connection.
File docker-standalone.yaml
tracardi:
build: .
environment:
UNOMI_PROTOCOL: http
UNOMI_HOST: unomi
UNOMI_PORT: 8181
UNOMI_USERNAME: karaf
UNOMI_PASSWORD: karaf
ELASTIC_HOST: https://user:name@elastic-search-ip:443 <- change here for ssl connection
ports:
- 80:80
depends_on:
- unomi
- elasticsearch
For unencrypted connection set ELASTIC_HOST in docker-standalone.yaml to:
tracardi:
...
environment:
ELASTIC_HOST: user:name@elastic-search-ip:9200
...
If you still experience problems with connection to elastic search, you can find the section on how to configure a connection to elastic search cluster below.
When you have unomi and elastic already installed you can use a
standalone version of Tracardi. This is usually a production type of configuration.
File docker-standalone.yaml has everything you need.
Edit docker-standalone.yaml and set connection to elastic and unomi.
UNOMI_PROTOCOL: http
UNOMI_HOST: <unomi-ip-address>
UNOMI_PORT: <unomi-port, either 8181 or 9443>
UNOMI_USERNAME: <unomi-username>
UNOMI_PASSWORD: <unomi-password>
ELASTIC_HOST: <elastic-ip-address>
ELASTIC_PORT: 9200
To start Tracardi, run this command from the same directory where the docker-standalone.yaml file exists:
docker-compose -f docker-standalone.yaml up
Tracardi can be configured to inspect the elastic state to get
a list of nodes upon startup, periodically and/or on failure.
To do that add the following to Tracardi configuration.
I hope the config is self-explanatory
ELASTIC_SNIFFER_TIMEOUT: 60,
ELASTIC_SNIFF_ON_START: True,
ELASTIC_SNIFF_ON_CONNECTION_FAIL: True,
By default there are open up to 10 connections to each node,
if you require more calls the ELASTIC_MAX_CONN parameter to raise the limit:
Add the following to Tracardi configuration.
ELASTIC_MAX_CONN: 10
To connect to elastic cluster you must provide location to all cluster nodes.
To configure Tracardi connection to elastic change ELASTIC_HOST in docker-standalone.yaml file.
ELASTIC_HOST: "node-1,node-2,node-3"
You can configure Tracardi to use SSL for connecting to your
elasticsearch cluster:
ELASTIC_HOST: "node-1,node-2,node-3",
ELASTIC_PORT: 443,
ELASTIC_SCHEME: "https",
ELASTIC_HTTP_AUTH_USERNAME: "user",
ELASTIC_HTTP_AUTH_PASSWORD: "pass",
or you can use RFC-1738 to specify the url:
ELASTIC_HOST: "https://user:secret@node-1:443,https://user:secret@node-2:443,https://user:secret@node-3:443"
To include certificate verification and HTTP auth if needed add the following line:
ELASTIC_CAFILE: "path to certificate",
Here is the configuration for connection with API_KEY
ELASTIC_HOST: "site-1.local,site-2,site-3.com",
ELASTIC_HTTP_AUTH_USERNAME: "user",
ELASTIC_HTTP_AUTH_PASSWORD: "pass",
ELASTIC_API_KEY: 'api-key',
Here is the configuration for connection with CLOUD_ID
ELASTIC_HOST: "site-1.local,site-2,site-3.com",
ELASTIC_CLOUD_ID: 'cluster-1:dXMa5Fx...',
If there is a need for more advanced connection configuration the change in /app/globals/elastic_client.py
should handle all mare advanced connection types from Tracardi to elastic.
Some cloud providers have different Elastic Search _sql/translate endpoints.
AWS use its own endpoint so there may be a need to change how Tracardi queries elastic search.
To set new SQL translate endpoint add additional variable in docker
compose file.
tracardi:
...
environment:
ELASTIC_SQL_TRANSLATE_URL: "/_opendistro/_sql/translate"
...
If there is a need for a change of default "POST" SQL translation method add:
tracardi:
...
environment:
ELASTIC_SQL_TRANSLATE_METHOD: "PUT"
...
If you would like to support us please follow us on Facebook or Twitter, tag us and leave your comments. Subscribe to our Youtube channel to see development process and new upcoming features.
Spread the news about TRACARDI so anyone interested get to know TRACARDI.
We appreciate any help that helps make TRACARDI popular.