This repository has been archived on 2025-11-14 . You can view files and clone it, but cannot push or open issues or pull requests.
a79053e75d372948b1044094b8b2c8bcec350da6
- Each component now has its own build.sh that builds in release mode - Each component's run.sh calls build.sh first, then starts the service - Coordinator, supervisor, and runner scripts are self-contained - All scripts use RUSTFLAGS="-A warnings" to suppress build warnings - Scripts properly handle configuration via environment variables
herocoordinator
Demo setup
A python script is provided in the scripts directory. This script generates some demo jobs to be run by a supervisor. Communication happens over mycelium. To run the demo a supervisor must be running, which uses a mycelium instance to read and write messages. A different mycelium instance needs to run for the coordinator (the supervisor can run on a different host than the coordinator, so long as the 2 mycelium instances used can reach eachother).
An example of a local setup:
# Run a redis docker
docker run -it -d -p 6379:6379 --name redis redis
# Spawn mycelium node 1 with default settings. This also creates a TUN interface though that is not
# necessary for the messages
mycelium
# Spawn mycelium node 2, connect to the first node
mycelium --key-file key.bin --peers tcp://127.0.0.1:9651 --disable-quic --disable-peer-discovery --api-addr 127.0.0.1:9989 --jsonrpc-addr 127.0.0.1:9990 --no-tun -t 8651
# Start the supervisor
supervisor --admin-secret admin123 --user-secret user123 --register-secret register123 --mycelium-url http://127.0.0.1:9990 --topic supervisor.rpc
# Start the coordinator
cargo run # (alternatively if a compiled binary is present that can be run)
# Finally, invoke the demo script
python3 scripts/supervisor_flow_demo.py
Description
Languages
Rust
84.8%
Python
12.1%
V
2.8%
Shell
0.3%