Source code of controller microservice that handles data to and from frontend and jupyter kernel gateway for evolutionary algorithms on click v2.
This service acts as the central orchestrator for the platform, managing:
- User Sessions & Authentication
- Jupyter Kernel Lifecycle (via
jupyter_gateway) - Database Interactions (CockroachDB)
- Inter-service communication (gRPC, HTTP)
- LLM microservice
- Volpe Integration service
- Go: 1.24.1 or higher
- Docker: For containerization and dependencies (CockroachDB, MinIO, )
- Docker Compose: For orchestration
- Make: For running standard commands
- Lefthook: For git hooks (optional but recommended)
- Clone the repository.
- Ensure you have the necessary environment variables set. Refer to
docker-compose.yamlfor required keys (e.g.,DATABASE_URL,JUPYTER_GATEWAY_URL). Note: The project usesgodotenvto load environment variables from a.envfile in development.
Start the supporting services (Database, Object Storage, Jupyter Gateway, etc.):
make docker-upor
docker-compose up --buildThis will spin up CockroachDB, MinIO, Jupyter Gateway, and Python Runner as defined in docker-compose.yaml.
To run the controller service locally:
# Install tools and git hooks
make setup
# Build and run the application
make runThe service will start on port 8080 (default).
- HTTP API: Versioned under
/api/v1/. Defined inroutes/api.go. - gRPC: Defined in
proto/authenticate.proto.