Menu

Tree [88f4f7] master /
 History

HTTPS access


File Date Author Commit
 .github 2021-05-01 atompie atompie [83881c] Update python-package.yml
 app 2021-05-04 risto risto [8b6d78] AwsCompatibleSqlClient
 .gitignore 2021-03-31 risto risto [1e22ec] init
 DEV.md 2021-04-02 risto risto [407344] readme
 Dockerfile 2021-04-06 risto risto [8f1df0] auth
 MANIFEST.in 2021-03-31 risto risto [1e22ec] init
 README.md 2021-05-04 risto risto [f8717b] README.md
 _config.yml 2021-04-29 atompie atompie [50b1dc] Set theme jekyll-theme-minimal
 docker-compose-auth-test.yaml 2021-05-04 risto risto [af1552] AwsCompatibleSqlClient
 docker-compose.yaml 2021-04-06 risto risto [8f1df0] auth
 docker-standalone.yaml 2021-05-04 risto risto [062c07] AwsCompatibleSqlClient
 requirements.txt 2021-05-01 risto risto [deb124] init tests - error fix
 setup.py 2021-05-01 risto risto [deb124] init tests - error fix

Read Me

header.jpg

Tests of Tracardi 0.3.0-dev

Tracardi Customer Data Platform

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.

Installation

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.

Running Tracardi

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

User interface authentication

Default user and password are configured in a docker compose file:

  • UNOMI_USERNAME (default: karaf) and
  • UNOMI_PASSWORD(default: karaf)

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.

Features

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

Screenshots

Screenshot 1

Browsing events

Screenshot 2

Editing rules

Video introduction

YOUTUBE Tracardi

Trouble shooting

Address already in use

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

Not found exception

If you see error in source section similar to this screenshot:

source_error

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.

Authentication Exception

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.

Tracardi without unomi and eleastic

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

Advanced configuration

Long running service

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,

Max connections to elastic

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

Connecting to elastic cluster

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"

SSL and Authentication

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",

Connect using API_KEY

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',

Connect using CLOUD_ID

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...',

Other connection types

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.

SQL translation configuration

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"
    ...

Support us

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.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.