Skip to main content

What is Apache Unomi?

Apache Unomi is a REST server that manages user profiles and events. It integrates personalization and profile management into any system — CMS, CRM, mobile apps, or custom platforms.

  • Tracks users via cookies or custom identifiers and builds rich profiles over time
  • Built-in rule engine triggers actions when events occur on a profile
  • Dynamic segmentation classifies profiles into groups for personalization
  • OSGi plugin architecture on Apache Karaf — extensible and scalable
  • Reference implementation of the OASIS CDP specification
graph TD
    A["👤 Visitor"] -->|Events| B["Apache Unomi"]
    B --> C["Profile Store"]
    B --> D["Rules Engine"]
    D --> E["🎯 Personalization"]
    D --> F["📊 Segmentation"]
    D --> G["📈 Scoring"]
    C --> H["Privacy Controls"]
                

Privacy as a First-Class Feature

Unomi’s privacy REST API lets you build user-facing UIs where visitors can manage their profile, control tracking, view collected data, anonymize past data, or fully delete their profile. Built for a world where GDPR and privacy legislation matter.

Run with Docker

The fastest way to try Apache Unomi. Only Docker is required.

1

Create a docker-compose.yml file

version: '3.8'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2
    environment:
      - discovery.type=single-node
    ports:
      - 9200:9200
  unomi:
    image: apache/unomi:3.0.0
    environment:
      - UNOMI_ELASTICSEARCH_ADDRESSES=elasticsearch:9200
      - UNOMI_THIRDPARTY_PROVIDER1_IPADDRESSES=0.0.0.0/0,::1,127.0.0.1
    ports:
      - 8181:8181
      - 9443:9443
      - 8102:8102
    links:
      - elasticsearch
    depends_on:
      - elasticsearch
2

Start the environment

docker-compose up

Wait for the startup to complete (usually 1–2 minutes).

3

Verify it’s running

curl -k https://localhost:9443/cxs/cluster -u karaf:karaf

Default credentials: karaf / karaf. You may see a certificate warning — this is expected in development.

Production note: This configuration is for development only. See the production security guide before deploying.

Prefer manual install? Follow the manual quick start guide for Java-based installation.