Skip to content

NERSC/interactEM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

interactEM

interactEM is 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 video

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

Configuration

  1. Setup .env with secure secrets

    make setup

    This automatically:

    • Copies .env.example to .env
    • Generates secure random values for all secrets
    • Searches for your podman socket
    • Updates your .env file
  2. Add GitHub credentials

    Edit your .env file and add GitHub info:

    GITHUB_USERNAME=your_github_username
    GITHUB_TOKEN=your_personal_token

    You can get a personal token from your GitHub account settings. Use a classic token with read:packages.

Starting services

  1. Quick start

    make setup
    # then fix your GITHUB_USERNAME/TOKEN in .env
    make docker-up
    make operators
  2. Access the application

    Open your browser to http://localhost:5173

    • Username: [email protected]
    • Password: Check your .env file for FIRST_SUPERUSER_PASSWORD (auto-generated), or output from make docker-up

Stopping services

  1. To stop services:

    make docker-down
  2. To stop and delete database (be careful):

    make clean

Launching an agent

For operators to launch, you need to startup an agent process. See backend/agent/README.md for instructions on how to do this.

License

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

Releases

No releases published

Packages

No packages published

Contributors 7