interactEM#
interactEM is an interactive flow-based programming platform for streaming experimental data to High-Performance Computing (HPC). Users wire together containerized operators through a web frontend and deploy them on both HPC and edge resources.
Demo video#
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#
Setup
.envwith secure secretsmake setupThis automatically:
Copies
.env.exampleto.envGenerates secure random values for all secrets
Searches for your podman socket
Updates your
.envfile
Add GitHub credentials
Edit your
.envfile 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#
Quick start
make setup # then fix your GITHUB_USERNAME/TOKEN in .env make docker-up make operators
Access the application
Open your browser to http://localhost:5173
Username:
admin@example.comPassword: Check your
.envfile forFIRST_SUPERUSER_PASSWORD(auto-generated), or output frommake docker-up
Stopping services#
To stop services:
make docker-downTo stop and delete database (be careful):
make clean
Launching an agent#
For operators to launch, you need to startup an agent process. See launching an agent for instructions on how to do this.
License#
This project is licensed under the LBNL BSD-3 License - see the LICENSE file for details.