Prerequisites

Ensure that you have the following installed on your machine:

  • Go (version 1.16 or above)
  • Node.js (version 14 or above)
  • Python (version 3.7 or above)
  • Docker (latest version)
  • A suitable shell environment

Step 1: Clone the Repository

Clone the Helix repository using Git:

git clone https://github.com/helixml/helix.git
cd helix

Step 2: Build the Project

Building the Go Component

Navigate to the relevant Go directory and build the module. Ensure you do not use -mod=vendor.

cd go/src
go build -o helix github.com/helixml/helix

Building the TypeScript Component

If there are TypeScript files, typically they will be under a client or frontend directory. Navigate there and install the required packages using npm.

cd client
npm install
npm run build

Building the Python Component

If there are Python dependencies, usually specified in a requirements.txt file, ensure you install them.

cd python
pip install -r requirements.txt

Step 3: Setting up Environment Variables

You may need to set environment variables for your development environment. Create a .env file in the root of your project and specify the necessary variables.

# Example .env file
export DATABASE_URL="your_database_url"
export API_KEY="your_api_key"

Step 4: Running Docker Containers

If the project utilizes Docker, you can build and run the required Docker images. Create or edit your Dockerfile if needed and run the following command to build and start the containers:

docker-compose up --build

Step 5: Starting the Application

After the build processes are completed, you can start the Helix application. Depending on your setup, the command may vary. If a main executable file was created in Go, you can run:

./helix

If there are included scripts, you might find an npm start or similar command as well.

cd client
npm start

or

cd python
python app.py

Conclusion

By following these steps, you should be able to successfully build and start the Helix project. Refer to the respective parts of the project documentation for additional options regarding configurations and environment settings.

Information obtained from the Helix project repository.