Eventum Logo

Eventum

Installation

Install Eventum as a Python package, run it with Docker, or build from source.

Prerequisites

Eventum requires Python 3.13 or later.

Check your Python version

python --version

If you see Python 3.13.x or higher, you're ready. If not, install the required version:

  • Ubuntu/Debian: sudo apt install python3.13
  • macOS (Homebrew): brew install python@3.13
  • Windows: download from python.org
  • Any platform with uv: uv python install 3.13 (uv manages Python versions for you)

Choose an installation method

MethodBest for
uv toolEasiest install — one command, no virtual environment management
pipWhen you already have a Python environment set up
DockerContainerized deployments without a local Python installation
From sourceDevelopment or running unreleased changes

Install with uv

uv is a fast Python package manager. If you don't have it yet:

curl -LsSf https://astral.sh/uv/install.sh | sh

Install Eventum as a tool — this makes the eventum and eventum-keyring commands globally available:

uv tool install eventum-generator

uv tool install creates an isolated environment for Eventum automatically — no project setup or virtual environment management needed.

Verify the installation:

eventum --version

Install with pip

pip install eventum-generator

We recommend installing into a virtual environment to avoid dependency conflicts:

python -m venv .venv && source .venv/bin/activate
pip install eventum-generator

Verify the installation:

eventum --version

Set up a project

After installing Eventum, you need to create a project directory with configuration files. The structure depends on how you plan to run Eventum.

Single generator mode

For quick experiments and one-off generation with eventum generate, all you need is a generator config file and its resources (e.g. templates):

generator.yml
event.jinja
mkdir -p my-project/templates

Create a generator.yml that defines the three-stage pipeline — input, event, and output. See the generator.yml reference for the full schema.

Then run it directly:

eventum generate --id my-gen --path my-project/generator.yml

See First run for a complete step-by-step example with template content.

Application mode

For production use with eventum run — multiple generators, a REST API, and the Studio web UI — you need three config files and a directory for your generators:

eventum.yml
startup.yml
mkdir -p eventum/{generators,logs}
FilePurposeReference
eventum.ymlMain application config — server settings, default generation parameters, logging, and file paths.eventum.yml reference
startup.ymlList of generators to load at startup with per-generator parameter overrides.startup.yml reference
generators/Each subdirectory is a self-contained generator with its own generator.yml and resources.generator.yml reference
logs/Application log files (path configured in eventum.yml).

Create a minimal eventum.yml — update the paths to match your project location:

eventum/eventum.yml
server:
  host: "0.0.0.0"
  port: 9474
  auth:
    user: eventum
    password: eventum

generation:
  timezone: UTC
  batch:
    size: 10000

log:
  level: info

path:
  startup: /absolute/path/to/eventum/startup.yml
  generators_dir: /absolute/path/to/eventum/generators
  logs: /absolute/path/to/eventum/logs
  keyring_cryptfile: /absolute/path/to/eventum/cryptfile.cfg

All values in the path section must be absolute paths. Replace /absolute/path/to/my-project with the actual path on your system.

Create a startup.yml — this is where you register your generators. Start with an empty list and add generators as you create them:

eventum/startup.yml
[]

Then start the application:

eventum run -c eventum/eventum.yml

Once running, open http://localhost:9474 in your browser to access the Studio UI.

See First run — Run as application for a complete walkthrough with generator examples, and Project structure for a detailed breakdown of how the files relate.


Docker

Official images are available on Docker Hub. Docker does not require a local Python installation.

Project layout for Docker

Prepare your project directory with the similar structure as the application mode above. The Docker container expects the config at /app/config/eventum.yml and generators in the directory you mount:

eventum.yml
startup.yml

Since the files will be mounted into the container, use the container paths in eventum.yml:

config/eventum.yml
server:
  host: "0.0.0.0"
  port: 9474
  auth:
    user: eventum
    password: eventum

generation:
  timezone: UTC
  batch:
    size: 10000

log:
  level: info

path:
  startup: /app/config/startup.yml
  generators_dir: /app/generators
  logs: /app/logs
  keyring_cryptfile: /app/config/cryptfile.cfg

Run with Docker

Mount your project directories and expose port 9474 for the API and Studio UI:

docker run --rm \
  -v $(pwd)/config:/app/config \
  -v $(pwd)/generators:/app/generators \
  -v $(pwd)/logs:/app/logs \
  -p 9474:9474 \
  rnv812/eventum-generator:latest

The container starts with eventum run -c /app/config/eventum.yml by default.

Run with Docker Compose

For a more reproducible setup, use a docker-compose.yml:

docker-compose.yml
services:
  eventum:
    image: rnv812/eventum-generator:latest
    ports:
      - "9474:9474"
    volumes:
      - ./config:/app/config
      - ./generators:/app/generators
      - ./logs:/app/logs
docker compose up -d

Once running, open http://localhost:9474 in your browser to access the Studio UI.


Build from source

For development or running the latest unreleased changes:

Clone the repository

git clone https://github.com/eventum-project/eventum-generator.git
cd eventum-generator

Install dependencies

uv is required for dependency management:

uv sync

Build the Studio UI

The web interface is a React application that needs to be compiled separately. Node.js is required:

cd eventum/ui
npm ci --legacy-peer-deps
npm run build
cd ../..

Verify

uv run eventum --version

What's next

On this page