Private Deployment
Deployment Modes

Deployment Modes

This guide describes the minimum configuration values you need to provide to deploy Rulebricks.

Quick Start (Development/Testing)

Minimal configuration for evaluation purposes. Self-hosts Supabase.

# values.yaml
global:
  domain: '<domain-you-control.com>
  email: '<valid-email>'
  licenseKey: '<valid-license-key>'
  smtp:
    <valid-information>
 
# Everything else uses defaults
helm install rulebricks oci://ghcr.io/rulebricks/charts/stack \
  --namespace rulebricks \
  --create-namespace \
  -f dev-values.yaml

Production with Supabase Cloud

Automatic DNS, external database.

# production-values.yaml
global:
  domain: '<domain-you-control.com>
  email: '<valid-email>'
  licenseKey: '<valid-license-key>'
  tlsEnabled: true
  externalDnsEnabled: true
 
  smtp:
    <valid-information>
 
  supabase:
    url: 'https://abcd1234.supabase.co'
    projectRef: 'abcd1234'
    anonKey: 'from-supabase-dashboard'
    serviceKey: 'from-supabase-dashboard'
    # Account > Settings > Access Tokens
    accessToken: '${SUPABASE_ACCESS_TOKEN}'
 
supabase:
  enabled: false # Don't deploy self-hosted
 
# Ensure this is configured properly
external-dns:
  enabled: true
  provider: route53

Cloud-Specific Values

AWS EKS

# AWS-specific settings
storageClass:
  create: true
  provisioner: ebs.csi.aws.com
  type: gp3
 
external-dns:
  enabled: true
  provider: route53
  # Uses IRSA - create IAM role and service account
# Recommended: Use IRSA for all AWS integrations
# eksctl create iamserviceaccount ...

Prerequisites:

  • EBS CSI driver installed
  • IRSA configured for external-dns and Vector (if using S3)
  • ALB/NLB annotations if not using Traefik

Google GKE

storageClass:
  create: true
  provisioner: pd.csi.storage.gke.io
  type: pd-ssd
 
external-dns:
  enabled: true
  provider: google
  google:
    project: 'your-gcp-project'
# GKE uses Workload Identity
# Annotate service accounts accordingly

Azure AKS

storageClass:
  create: true
  provisioner: disk.csi.azure.com
  type: Premium_LRS
 
external-dns:
  enabled: true
  provider: azure
  azure:
    resourceGroup: 'your-resource-group'
    subscriptionId: 'your-subscription-id'

Uninstallation

# Remove release (keeps PVCs)
helm uninstall rulebricks -n rulebricks
 
# Full cleanup including data
helm uninstall rulebricks -n rulebricks
kubectl delete pvc --all -n rulebricks
kubectl delete namespace rulebricks