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.mp4
- 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.
-
Setup
.envwith secure secretsmake setup
This automatically:
- Copies
.env.exampleto.env - Generates secure random values for all secrets
- Searches for your podman socket
- Updates your
.envfile
- Copies
-
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.
-
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:
[email protected] - Password: Check your
.envfile forFIRST_SUPERUSER_PASSWORD(auto-generated), or output frommake docker-up
- Username:
-
To stop services:
make docker-down
-
To stop and delete database (be careful):
make clean
For operators to launch, you need to startup an agent process. See backend/agent/README.md for instructions on how to do this.
This project is licensed under the LBNL BSD-3 License - see the LICENSE file for details.