improvement(helm): fix duplicate SOCKET_SERVER_URL and add additional envvars to template (#909)

* improvement(helm): fix duplicate SOCKET_SERVER_URL and add additional envvars to template

* rm serper & freestyle
This commit is contained in:
Waleed Latif
2025-08-08 10:59:34 -07:00
committed by GitHub
parent 9a7c58c8a2
commit 87e0586d0a
4 changed files with 231 additions and 34 deletions

View File

@@ -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

View File

@@ -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 }}

View File

@@ -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"
}
}
}
@@ -192,6 +375,11 @@
"ALLOWED_ORIGINS": {
"type": "string",
"description": "CORS allowed origins"
},
"NODE_ENV": {
"type": "string",
"enum": ["development", "test", "production"],
"description": "Runtime environment"
}
}
}

View File

@@ -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
@@ -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: