Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 1 addition & 14 deletions helm/sim/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,7 @@ This Helm chart deploys Sim, a lightweight AI agent workflow platform, on Kubern

### Quick Start

1. Add the chart repository (if using a separate repo):
```bash
helm repo add simstudio https://charts.sim.ai
helm repo update
```

2. Install the chart:
```bash
helm install sim simstudio/sim
```

### Local Installation

If using the chart from this repository:
Install the chart from this repository:

```bash
# From the repository root
Expand Down
4 changes: 2 additions & 2 deletions helm/sim/templates/deployment-app.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,10 @@ spec:
- name: DATABASE_URL
value: {{ include "sim.databaseUrl" . | quote }}
- name: SOCKET_SERVER_URL
value: {{ include "sim.socketServerUrl" . | quote }}
value: {{ .Values.app.env.SOCKET_SERVER_URL | default "http://localhost:3002" | quote }}
- name: OLLAMA_URL
value: {{ include "sim.ollamaUrl" . | quote }}
{{- range $key, $value := .Values.app.env }}
{{- range $key, $value := omit .Values.app.env "DATABASE_URL" "SOCKET_SERVER_URL" "OLLAMA_URL" }}
- name: {{ $key }}
value: {{ $value | quote }}
{{- end }}
Expand Down
188 changes: 188 additions & 0 deletions helm/sim/values.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,189 @@
"type": "string",
"format": "uri",
"description": "Public socket URL"
},
"NODE_ENV": {
"type": "string",
"enum": ["development", "test", "production"],
"description": "Runtime environment"
},
"NEXT_TELEMETRY_DISABLED": {
"type": "string",
"description": "Disable Next.js telemetry"
},
"RESEND_API_KEY": {
"type": "string",
"description": "Resend API key for transactional emails"
},
"EMAIL_DOMAIN": {
"type": "string",
"description": "Domain for sending emails"
},
"GOOGLE_CLIENT_ID": {
"type": "string",
"description": "Google OAuth client ID"
},
"GOOGLE_CLIENT_SECRET": {
"type": "string",
"description": "Google OAuth client secret"
},
"GITHUB_CLIENT_ID": {
"type": "string",
"description": "GitHub OAuth client ID"
},
"GITHUB_CLIENT_SECRET": {
"type": "string",
"description": "GitHub OAuth client secret"
},
"OPENAI_API_KEY": {
"type": "string",
"description": "Primary OpenAI API key"
},
"OPENAI_API_KEY_1": {
"type": "string",
"description": "Additional OpenAI API key for load balancing"
},
"OPENAI_API_KEY_2": {
"type": "string",
"description": "Additional OpenAI API key for load balancing"
},
"OPENAI_API_KEY_3": {
"type": "string",
"description": "Additional OpenAI API key for load balancing"
},
"MISTRAL_API_KEY": {
"type": "string",
"description": "Mistral AI API key"
},
"ANTHROPIC_API_KEY_1": {
"type": "string",
"description": "Primary Anthropic Claude API key"
},
"ANTHROPIC_API_KEY_2": {
"type": "string",
"description": "Additional Anthropic API key for load balancing"
},
"ANTHROPIC_API_KEY_3": {
"type": "string",
"description": "Additional Anthropic API key for load balancing"
},
"OLLAMA_URL": {
"type": "string",
"format": "uri",
"description": "Ollama local LLM server URL"
},
"ELEVENLABS_API_KEY": {
"type": "string",
"description": "ElevenLabs API key for text-to-speech in deployed chat"
},
"RATE_LIMIT_WINDOW_MS": {
"type": "string",
"description": "Rate limit window duration in milliseconds"
},
"RATE_LIMIT_FREE_SYNC": {
"type": "string",
"description": "Free tier sync API executions per minute"
},
"RATE_LIMIT_PRO_SYNC": {
"type": "string",
"description": "Pro tier sync API executions per minute"
},
"RATE_LIMIT_TEAM_SYNC": {
"type": "string",
"description": "Team tier sync API executions per minute"
},
"RATE_LIMIT_ENTERPRISE_SYNC": {
"type": "string",
"description": "Enterprise tier sync API executions per minute"
},
"RATE_LIMIT_FREE_ASYNC": {
"type": "string",
"description": "Free tier async API executions per minute"
},
"RATE_LIMIT_PRO_ASYNC": {
"type": "string",
"description": "Pro tier async API executions per minute"
},
"RATE_LIMIT_TEAM_ASYNC": {
"type": "string",
"description": "Team tier async API executions per minute"
},
"RATE_LIMIT_ENTERPRISE_ASYNC": {
"type": "string",
"description": "Enterprise tier async API executions per minute"
},
"MANUAL_EXECUTION_LIMIT": {
"type": "string",
"description": "Manual execution bypass value"
},
"NEXT_PUBLIC_BRAND_NAME": {
"type": "string",
"description": "Custom brand name"
},
"NEXT_PUBLIC_BRAND_LOGO_URL": {
"type": "string",
"description": "Custom logo URL"
},
"NEXT_PUBLIC_BRAND_FAVICON_URL": {
"type": "string",
"description": "Custom favicon URL"
},
"NEXT_PUBLIC_BRAND_PRIMARY_COLOR": {
"type": "string",
"description": "Primary brand color (hex)"
},
"NEXT_PUBLIC_BRAND_SECONDARY_COLOR": {
"type": "string",
"description": "Secondary brand color (hex)"
},
"NEXT_PUBLIC_BRAND_ACCENT_COLOR": {
"type": "string",
"description": "Accent brand color (hex)"
},
"NEXT_PUBLIC_CUSTOM_CSS_URL": {
"type": "string",
"description": "Custom stylesheet URL"
},
"NEXT_PUBLIC_HIDE_BRANDING": {
"type": "string",
"description": "Hide powered by branding"
},
"NEXT_PUBLIC_CUSTOM_FOOTER_TEXT": {
"type": "string",
"description": "Custom footer text"
},
"NEXT_PUBLIC_SUPPORT_EMAIL": {
"type": "string",
"format": "email",
"description": "Support email address"
},
"NEXT_PUBLIC_SUPPORT_URL": {
"type": "string",
"description": "Support page URL"
},
"NEXT_PUBLIC_DOCUMENTATION_URL": {
"type": "string",
"description": "Documentation URL"
},
"NEXT_PUBLIC_TERMS_URL": {
"type": "string",
"description": "Terms of service URL"
},
"NEXT_PUBLIC_PRIVACY_URL": {
"type": "string",
"description": "Privacy policy URL"
},
"NEXT_PUBLIC_SENTRY_DSN": {
"type": "string",
"description": "Sentry DSN for error tracking"
},
"ALLOWED_LOGIN_EMAILS": {
"type": "string",
"description": "Comma-separated list of allowed email addresses for login"
},
"ALLOWED_LOGIN_DOMAINS": {
"type": "string",
"description": "Comma-separated list of allowed email domains for login"
}
}
}
Expand Down Expand Up @@ -192,6 +375,11 @@
"ALLOWED_ORIGINS": {
"type": "string",
"description": "CORS allowed origins"
},
"NODE_ENV": {
"type": "string",
"enum": ["development", "test", "production"],
"description": "Runtime environment"
}
}
}
Expand Down
58 changes: 40 additions & 18 deletions helm/sim/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,39 @@ app:
BETTER_AUTH_SECRET: "" # REQUIRED - set via --set flag or external secret manager
ENCRYPTION_KEY: "" # REQUIRED - set via --set flag or external secret manager

# Optional third-party service integrations (leave empty if not using)
FREESTYLE_API_KEY: ""
GOOGLE_CLIENT_ID: ""
GOOGLE_CLIENT_SECRET: ""
GITHUB_CLIENT_ID: ""
GITHUB_CLIENT_SECRET: ""
RESEND_API_KEY: ""
# Email & Communication
RESEND_API_KEY: "" # Resend API key for transactional emails
EMAIL_DOMAIN: "" # Domain for sending emails

# OAuth Integration Credentials (leave empty if not using)
GOOGLE_CLIENT_ID: "" # Google OAuth client ID
GOOGLE_CLIENT_SECRET: "" # Google OAuth client secret
GITHUB_CLIENT_ID: "" # GitHub OAuth client ID
GITHUB_CLIENT_SECRET: "" # GitHub OAuth client secret

# AI Provider API Keys (leave empty if not using)
OPENAI_API_KEY: "" # Primary OpenAI API key
OPENAI_API_KEY_1: "" # Additional OpenAI API key for load balancing
OPENAI_API_KEY_2: "" # Additional OpenAI API key for load balancing
OPENAI_API_KEY_3: "" # Additional OpenAI API key for load balancing
MISTRAL_API_KEY: "" # Mistral AI API key
ANTHROPIC_API_KEY_1: "" # Primary Anthropic Claude API key
ANTHROPIC_API_KEY_2: "" # Additional Anthropic API key for load balancing
ANTHROPIC_API_KEY_3: "" # Additional Anthropic API key for load balancing
OLLAMA_URL: "" # Ollama local LLM server URL
ELEVENLABS_API_KEY: "" # ElevenLabs API key for text-to-speech in deployed chat

# Rate Limiting Configuration (per minute)
RATE_LIMIT_WINDOW_MS: "60000" # Rate limit window duration (1 minute)
RATE_LIMIT_FREE_SYNC: "10" # Free tier sync API executions
RATE_LIMIT_PRO_SYNC: "25" # Pro tier sync API executions
RATE_LIMIT_TEAM_SYNC: "75" # Team tier sync API executions
RATE_LIMIT_ENTERPRISE_SYNC: "150" # Enterprise tier sync API executions
RATE_LIMIT_FREE_ASYNC: "50" # Free tier async API executions
RATE_LIMIT_PRO_ASYNC: "200" # Pro tier async API executions
RATE_LIMIT_TEAM_ASYNC: "500" # Team tier async API executions
RATE_LIMIT_ENTERPRISE_ASYNC: "1000" # Enterprise tier async API executions
MANUAL_EXECUTION_LIMIT: "999999" # Manual execution bypass value

# UI Branding & Whitelabeling Configuration
NEXT_PUBLIC_BRAND_NAME: "Sim" # Custom brand name
Expand All @@ -88,17 +114,13 @@ app:
NEXT_PUBLIC_TERMS_URL: "" # Terms of service URL (leave empty for none)
NEXT_PUBLIC_PRIVACY_URL: "" # Privacy policy URL (leave empty for none)

# Rate Limiting Configuration
RATE_LIMIT_WINDOW_MS: "60000" # Rate limit window in milliseconds (1 minute)
MANUAL_EXECUTION_LIMIT: "999999" # Manual execution limit (effectively unlimited)
RATE_LIMIT_FREE_SYNC: "10" # Free tier sync API executions per minute
RATE_LIMIT_FREE_ASYNC: "50" # Free tier async API executions per minute
RATE_LIMIT_PRO_SYNC: "25" # Pro tier sync API executions per minute
RATE_LIMIT_PRO_ASYNC: "200" # Pro tier async API executions per minute
RATE_LIMIT_TEAM_SYNC: "75" # Team tier sync API executions per minute
RATE_LIMIT_TEAM_ASYNC: "500" # Team tier async API executions per minute
RATE_LIMIT_ENTERPRISE_SYNC: "150" # Enterprise tier sync API executions per minute
RATE_LIMIT_ENTERPRISE_ASYNC: "1000" # Enterprise tier async API executions per minute
# Monitoring & Analytics (leave empty if not using)
NEXT_PUBLIC_SENTRY_DSN: "" # Sentry DSN for error tracking

# Access Control (leave empty if not restricting login)
ALLOWED_LOGIN_EMAILS: "" # Comma-separated list of allowed email addresses for login
ALLOWED_LOGIN_DOMAINS: "" # Comma-separated list of allowed email domains for login


# Service configuration
service:
Expand Down