Skip to content

NERSC/interactEM

Repository files navigation

interactEM

An interactive flow-based programming platform for streaming experimental data to High-Performance Computing (HPC). Users can wire together containerized operators through a web frontend and deploy them on both HPC and edge resources.

demo.mp4

Features

  • Interactive Web Frontend: Create data pipelines with a React-based frontend.
  • Containerized Operators: Uses container technology to ensure consistent execution environments.
  • Data Streaming: Operators connect and data flows between them over network with point-to-point communication.

Running locally

Prerequisites

  • Docker Desktop and Podman Desktop (recommended for easiest setup)
  • NATS Tools: Command-line utilities for interacting with NATS

Configuration

  1. Set up Environment Variables
    Add Github and personal token information in .env file.

    GITHUB_USERNAME=your_github_username
    GITHUB_TOKEN=your_personal_token
  2. Generate NATS Authentication Files
    Generate auth.conf for the NATS cluster and various .creds and .nk files for NATS authentication.

    cd nats-conf
    ./generate-auth-jwt.sh

Building Docker Images and starting services

  1. Build the Required Images
    Use one of the following methods.

    docker/build.sh

    or

    docker/bake.sh
  2. Bring up Services
    Use docker compose:

    docker compose up --force-recreate --remove-orphans --build -d

License

This project is licensed under the LBNL BSD-3 License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6