Helix ML
Sign In

On-Prem deployment

Run Helix on your own infrastructure.

Local Setup

To install Helix on your own Linux server with Nvidia/AMD GPU support, run the following command:

curl -sL -O https://get.helixml.tech/install.sh && bash install.sh

Kubernetes Setup

To install Helix as a chart in your Kubernetes cluster you will first need to create secrets with the following contents:

# Create namespace and secrets
kubectl create namespace helix
kubectl config set-context --current --namespace=helix

# Create secrets with generated secure values
kubectl create secret generic postgresql-auth-secret \
  --from-literal=postgres-password="zuriOfPBBpOaUUDff32FGSAz" \
  --from-literal=username="helix" \
  --from-literal=password="" \
  --from-literal=database="helix"

kubectl create secret generic pgvector-auth-secret \
  --from-literal=username="postgres" \
  --from-literal=password="" \
  --from-literal=database="postgres"

kubectl create secret generic helix-pgvector-creds \
  --from-literal=dsn="postgresql://postgres:@my-helix-controlplane-pgvector:5432/postgres"

kubectl create secret generic helix-license \
  --from-literal=license-key="eyJkYXRhIjoie1wiaWRcIjpcImxpY18zNlpBNllzRGRjZlVDRlVCRzdadDU4TEF5TTVcIixcIm9yZ2FuaXphdGlvblwiOlwicXF3ZXFcIixcInZhbGlkXCI6dHJ1ZSxcImlzc3VlZFwiOlwiMjAyNS0xMi0wOFQxNDoxOTowNC4wMjM5MzQ0ODJaXCIsXCJ2YWxpZF91bnRpbFwiOlwiMjAyNi0xMi0wOFQxNDoxOTowNC4wMjM3OTA4NDRaXCIsXCJmZWF0dXJlc1wiOntcInVzZXJzXCI6dHJ1ZX0sXCJsaW1pdHNcIjp7XCJ1c2Vyc1wiOjAsXCJtYWNoaW5lc1wiOjB9fSIsInNpZ25hdHVyZSI6IkFtamZqR0EzL2p5d1N5bEpDa0trM0x4eDRDWG5malpjTFVjcFBiTGdXZ2l1d0JKRTU2M2JrUC9Ea21pL1VIZEtNckdmb25OT2R1V2hrOHJ5TmNZR1RBPT0ifQ=="

kubectl create secret generic helix-runner-secrets \
  --from-literal=api-token="CHANGE-ME"

Now, save this as values.yaml for the chart:

# Production-ready configuration for helix-controlplane
# For more information: https://docs.helixml.tech/helix/private-deployment/manual-install/kubernetes/
 
global:
  serverUrl: http://localhost:8080
 
image:
  tag: ""
 
searxng:
  enabled: true
 
chrome:
  enabled: true
pgvector:
  enabled: true
  auth:
    existingSecret: "pgvector-auth-secret"
    usernameKey: "username"
    passwordKey: "password"
    databaseKey: "database"
  persistence:
    enabled: true
    size: 50Gi
    storageClass: ""
    annotations: {}
    accessModes:
      - ReadWriteOnce
 
controlplane:
  licenseKeyExistingSecret: "helix-license"
  licenseKeyExistingSecretKey: "license-key"
 
  runnerTokenExistingSecret: "helix-runner-secrets"
  runnerTokenExistingSecretKey: "api-token"
 
  admin:
    userSource: "env"
    userIds: "all"
  
  haystack:
    enabled: true
    existingSecret: "helix-pgvector-creds"
    existingSecretDsnKey: "dsn"
    embeddingsModel: "MrLight/dse-qwen2-2b-mrl-v1"
    embeddingsDim: "1536"
    chunkSize: "1000"
    chunkOverlap: "50"
    chunkUnit: "word"
  
  rag:
    defaultProvider: "haystack"
    embeddingsProvider: "helix"
  
  inference:
    defaultProvider: "helix"
  
  fineTuning:
    defaultProvider: "helix"
persistence:
  enabled: true
  size: 100Gi
  storageClass: ""
  accessModes:
    - ReadWriteOnce
 
volumes:
  - name: data
 
postgresql:
  enabled: true
  auth:
    existingSecret: "postgresql-auth-secret"
    postgresPasswordKey: "postgres-password"
    usernameKey: "username"
    passwordKey: "password"
    databaseKey: "database"
  architecture: standalone
 
tika:
  enabled: false
 
typesense:
  enabled: false

Now we are ready to deploy controlplane:

# Add Helix Helm repository
helm repo add helix https://charts.helixml.tech
helm repo update
# Install Control Plane with your generated values.yaml and secrets
export HELIX_VERSION="latest"
helm upgrade --install my-helix-controlplane helix/helix-controlplane \
  -f values.yaml \
  --set image.tag="${HELIX_VERSION}"

Now install the runner:

# Install Runner (after control plane is running and secrets are created)
export HELIX_VERSION="latest"
helm upgrade --install my-helix-runner helix/helix-runner \
  --set runner.host="http://my-helix-controlplane:8080" \
  --set runner.tokenExistingSecret="helix-runner-secrets" \
  --set runner.tokenExistingSecretKey="api-token" \
  --set replicaCount=1 \
  --set image.tag="${HELIX_VERSION}-small"

And to access it you can use the following command:

kubectl port-forward svc/helix-helix-controlplane 8080:80