Skip to content

Commit 87e0586

Browse files
authored
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
1 parent 9a7c58c commit 87e0586

File tree

4 files changed

+231
-34
lines changed

4 files changed

+231
-34
lines changed

helm/sim/README.md

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,7 @@ This Helm chart deploys Sim, a lightweight AI agent workflow platform, on Kubern
1212

1313
### Quick Start
1414

15-
1. Add the chart repository (if using a separate repo):
16-
```bash
17-
helm repo add simstudio https://charts.sim.ai
18-
helm repo update
19-
```
20-
21-
2. Install the chart:
22-
```bash
23-
helm install sim simstudio/sim
24-
```
25-
26-
### Local Installation
27-
28-
If using the chart from this repository:
15+
Install the chart from this repository:
2916

3017
```bash
3118
# From the repository root

helm/sim/templates/deployment-app.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,10 @@ spec:
6868
- name: DATABASE_URL
6969
value: {{ include "sim.databaseUrl" . | quote }}
7070
- name: SOCKET_SERVER_URL
71-
value: {{ include "sim.socketServerUrl" . | quote }}
71+
value: {{ .Values.app.env.SOCKET_SERVER_URL | default "http://localhost:3002" | quote }}
7272
- name: OLLAMA_URL
7373
value: {{ include "sim.ollamaUrl" . | quote }}
74-
{{- range $key, $value := .Values.app.env }}
74+
{{- range $key, $value := omit .Values.app.env "DATABASE_URL" "SOCKET_SERVER_URL" "OLLAMA_URL" }}
7575
- name: {{ $key }}
7676
value: {{ $value | quote }}
7777
{{- end }}

helm/sim/values.schema.json

Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,189 @@
113113
"type": "string",
114114
"format": "uri",
115115
"description": "Public socket URL"
116+
},
117+
"NODE_ENV": {
118+
"type": "string",
119+
"enum": ["development", "test", "production"],
120+
"description": "Runtime environment"
121+
},
122+
"NEXT_TELEMETRY_DISABLED": {
123+
"type": "string",
124+
"description": "Disable Next.js telemetry"
125+
},
126+
"RESEND_API_KEY": {
127+
"type": "string",
128+
"description": "Resend API key for transactional emails"
129+
},
130+
"EMAIL_DOMAIN": {
131+
"type": "string",
132+
"description": "Domain for sending emails"
133+
},
134+
"GOOGLE_CLIENT_ID": {
135+
"type": "string",
136+
"description": "Google OAuth client ID"
137+
},
138+
"GOOGLE_CLIENT_SECRET": {
139+
"type": "string",
140+
"description": "Google OAuth client secret"
141+
},
142+
"GITHUB_CLIENT_ID": {
143+
"type": "string",
144+
"description": "GitHub OAuth client ID"
145+
},
146+
"GITHUB_CLIENT_SECRET": {
147+
"type": "string",
148+
"description": "GitHub OAuth client secret"
149+
},
150+
"OPENAI_API_KEY": {
151+
"type": "string",
152+
"description": "Primary OpenAI API key"
153+
},
154+
"OPENAI_API_KEY_1": {
155+
"type": "string",
156+
"description": "Additional OpenAI API key for load balancing"
157+
},
158+
"OPENAI_API_KEY_2": {
159+
"type": "string",
160+
"description": "Additional OpenAI API key for load balancing"
161+
},
162+
"OPENAI_API_KEY_3": {
163+
"type": "string",
164+
"description": "Additional OpenAI API key for load balancing"
165+
},
166+
"MISTRAL_API_KEY": {
167+
"type": "string",
168+
"description": "Mistral AI API key"
169+
},
170+
"ANTHROPIC_API_KEY_1": {
171+
"type": "string",
172+
"description": "Primary Anthropic Claude API key"
173+
},
174+
"ANTHROPIC_API_KEY_2": {
175+
"type": "string",
176+
"description": "Additional Anthropic API key for load balancing"
177+
},
178+
"ANTHROPIC_API_KEY_3": {
179+
"type": "string",
180+
"description": "Additional Anthropic API key for load balancing"
181+
},
182+
"OLLAMA_URL": {
183+
"type": "string",
184+
"format": "uri",
185+
"description": "Ollama local LLM server URL"
186+
},
187+
"ELEVENLABS_API_KEY": {
188+
"type": "string",
189+
"description": "ElevenLabs API key for text-to-speech in deployed chat"
190+
},
191+
"RATE_LIMIT_WINDOW_MS": {
192+
"type": "string",
193+
"description": "Rate limit window duration in milliseconds"
194+
},
195+
"RATE_LIMIT_FREE_SYNC": {
196+
"type": "string",
197+
"description": "Free tier sync API executions per minute"
198+
},
199+
"RATE_LIMIT_PRO_SYNC": {
200+
"type": "string",
201+
"description": "Pro tier sync API executions per minute"
202+
},
203+
"RATE_LIMIT_TEAM_SYNC": {
204+
"type": "string",
205+
"description": "Team tier sync API executions per minute"
206+
},
207+
"RATE_LIMIT_ENTERPRISE_SYNC": {
208+
"type": "string",
209+
"description": "Enterprise tier sync API executions per minute"
210+
},
211+
"RATE_LIMIT_FREE_ASYNC": {
212+
"type": "string",
213+
"description": "Free tier async API executions per minute"
214+
},
215+
"RATE_LIMIT_PRO_ASYNC": {
216+
"type": "string",
217+
"description": "Pro tier async API executions per minute"
218+
},
219+
"RATE_LIMIT_TEAM_ASYNC": {
220+
"type": "string",
221+
"description": "Team tier async API executions per minute"
222+
},
223+
"RATE_LIMIT_ENTERPRISE_ASYNC": {
224+
"type": "string",
225+
"description": "Enterprise tier async API executions per minute"
226+
},
227+
"MANUAL_EXECUTION_LIMIT": {
228+
"type": "string",
229+
"description": "Manual execution bypass value"
230+
},
231+
"NEXT_PUBLIC_BRAND_NAME": {
232+
"type": "string",
233+
"description": "Custom brand name"
234+
},
235+
"NEXT_PUBLIC_BRAND_LOGO_URL": {
236+
"type": "string",
237+
"description": "Custom logo URL"
238+
},
239+
"NEXT_PUBLIC_BRAND_FAVICON_URL": {
240+
"type": "string",
241+
"description": "Custom favicon URL"
242+
},
243+
"NEXT_PUBLIC_BRAND_PRIMARY_COLOR": {
244+
"type": "string",
245+
"description": "Primary brand color (hex)"
246+
},
247+
"NEXT_PUBLIC_BRAND_SECONDARY_COLOR": {
248+
"type": "string",
249+
"description": "Secondary brand color (hex)"
250+
},
251+
"NEXT_PUBLIC_BRAND_ACCENT_COLOR": {
252+
"type": "string",
253+
"description": "Accent brand color (hex)"
254+
},
255+
"NEXT_PUBLIC_CUSTOM_CSS_URL": {
256+
"type": "string",
257+
"description": "Custom stylesheet URL"
258+
},
259+
"NEXT_PUBLIC_HIDE_BRANDING": {
260+
"type": "string",
261+
"description": "Hide powered by branding"
262+
},
263+
"NEXT_PUBLIC_CUSTOM_FOOTER_TEXT": {
264+
"type": "string",
265+
"description": "Custom footer text"
266+
},
267+
"NEXT_PUBLIC_SUPPORT_EMAIL": {
268+
"type": "string",
269+
"format": "email",
270+
"description": "Support email address"
271+
},
272+
"NEXT_PUBLIC_SUPPORT_URL": {
273+
"type": "string",
274+
"description": "Support page URL"
275+
},
276+
"NEXT_PUBLIC_DOCUMENTATION_URL": {
277+
"type": "string",
278+
"description": "Documentation URL"
279+
},
280+
"NEXT_PUBLIC_TERMS_URL": {
281+
"type": "string",
282+
"description": "Terms of service URL"
283+
},
284+
"NEXT_PUBLIC_PRIVACY_URL": {
285+
"type": "string",
286+
"description": "Privacy policy URL"
287+
},
288+
"NEXT_PUBLIC_SENTRY_DSN": {
289+
"type": "string",
290+
"description": "Sentry DSN for error tracking"
291+
},
292+
"ALLOWED_LOGIN_EMAILS": {
293+
"type": "string",
294+
"description": "Comma-separated list of allowed email addresses for login"
295+
},
296+
"ALLOWED_LOGIN_DOMAINS": {
297+
"type": "string",
298+
"description": "Comma-separated list of allowed email domains for login"
116299
}
117300
}
118301
}
@@ -192,6 +375,11 @@
192375
"ALLOWED_ORIGINS": {
193376
"type": "string",
194377
"description": "CORS allowed origins"
378+
},
379+
"NODE_ENV": {
380+
"type": "string",
381+
"enum": ["development", "test", "production"],
382+
"description": "Runtime environment"
195383
}
196384
}
197385
}

helm/sim/values.yaml

Lines changed: 40 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,39 @@ app:
6464
BETTER_AUTH_SECRET: "" # REQUIRED - set via --set flag or external secret manager
6565
ENCRYPTION_KEY: "" # REQUIRED - set via --set flag or external secret manager
6666

67-
# Optional third-party service integrations (leave empty if not using)
68-
FREESTYLE_API_KEY: ""
69-
GOOGLE_CLIENT_ID: ""
70-
GOOGLE_CLIENT_SECRET: ""
71-
GITHUB_CLIENT_ID: ""
72-
GITHUB_CLIENT_SECRET: ""
73-
RESEND_API_KEY: ""
67+
# Email & Communication
68+
RESEND_API_KEY: "" # Resend API key for transactional emails
69+
EMAIL_DOMAIN: "" # Domain for sending emails
70+
71+
# OAuth Integration Credentials (leave empty if not using)
72+
GOOGLE_CLIENT_ID: "" # Google OAuth client ID
73+
GOOGLE_CLIENT_SECRET: "" # Google OAuth client secret
74+
GITHUB_CLIENT_ID: "" # GitHub OAuth client ID
75+
GITHUB_CLIENT_SECRET: "" # GitHub OAuth client secret
76+
77+
# AI Provider API Keys (leave empty if not using)
78+
OPENAI_API_KEY: "" # Primary OpenAI API key
79+
OPENAI_API_KEY_1: "" # Additional OpenAI API key for load balancing
80+
OPENAI_API_KEY_2: "" # Additional OpenAI API key for load balancing
81+
OPENAI_API_KEY_3: "" # Additional OpenAI API key for load balancing
82+
MISTRAL_API_KEY: "" # Mistral AI API key
83+
ANTHROPIC_API_KEY_1: "" # Primary Anthropic Claude API key
84+
ANTHROPIC_API_KEY_2: "" # Additional Anthropic API key for load balancing
85+
ANTHROPIC_API_KEY_3: "" # Additional Anthropic API key for load balancing
86+
OLLAMA_URL: "" # Ollama local LLM server URL
87+
ELEVENLABS_API_KEY: "" # ElevenLabs API key for text-to-speech in deployed chat
88+
89+
# Rate Limiting Configuration (per minute)
90+
RATE_LIMIT_WINDOW_MS: "60000" # Rate limit window duration (1 minute)
91+
RATE_LIMIT_FREE_SYNC: "10" # Free tier sync API executions
92+
RATE_LIMIT_PRO_SYNC: "25" # Pro tier sync API executions
93+
RATE_LIMIT_TEAM_SYNC: "75" # Team tier sync API executions
94+
RATE_LIMIT_ENTERPRISE_SYNC: "150" # Enterprise tier sync API executions
95+
RATE_LIMIT_FREE_ASYNC: "50" # Free tier async API executions
96+
RATE_LIMIT_PRO_ASYNC: "200" # Pro tier async API executions
97+
RATE_LIMIT_TEAM_ASYNC: "500" # Team tier async API executions
98+
RATE_LIMIT_ENTERPRISE_ASYNC: "1000" # Enterprise tier async API executions
99+
MANUAL_EXECUTION_LIMIT: "999999" # Manual execution bypass value
74100

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

91-
# Rate Limiting Configuration
92-
RATE_LIMIT_WINDOW_MS: "60000" # Rate limit window in milliseconds (1 minute)
93-
MANUAL_EXECUTION_LIMIT: "999999" # Manual execution limit (effectively unlimited)
94-
RATE_LIMIT_FREE_SYNC: "10" # Free tier sync API executions per minute
95-
RATE_LIMIT_FREE_ASYNC: "50" # Free tier async API executions per minute
96-
RATE_LIMIT_PRO_SYNC: "25" # Pro tier sync API executions per minute
97-
RATE_LIMIT_PRO_ASYNC: "200" # Pro tier async API executions per minute
98-
RATE_LIMIT_TEAM_SYNC: "75" # Team tier sync API executions per minute
99-
RATE_LIMIT_TEAM_ASYNC: "500" # Team tier async API executions per minute
100-
RATE_LIMIT_ENTERPRISE_SYNC: "150" # Enterprise tier sync API executions per minute
101-
RATE_LIMIT_ENTERPRISE_ASYNC: "1000" # Enterprise tier async API executions per minute
117+
# Monitoring & Analytics (leave empty if not using)
118+
NEXT_PUBLIC_SENTRY_DSN: "" # Sentry DSN for error tracking
119+
120+
# Access Control (leave empty if not restricting login)
121+
ALLOWED_LOGIN_EMAILS: "" # Comma-separated list of allowed email addresses for login
122+
ALLOWED_LOGIN_DOMAINS: "" # Comma-separated list of allowed email domains for login
123+
102124

103125
# Service configuration
104126
service:

0 commit comments

Comments
 (0)