Skip to content

Commit 6e63eaf

Browse files
authored
improvement(db): remove vercel, remove railway, remove crons, improve DB connection config (#1519)
* improvement(db): remove vercel, remove railway, remove crons, improve DB connection config * remove NEXT_PUBLIC_VERCEL_URL * remove db url fallbacks * remove railway & more vercel stuff --------- Co-authored-by: waleed <waleed>
1 parent 896f7bb commit 6e63eaf

File tree

18 files changed

+11
-118
lines changed

18 files changed

+11
-118
lines changed

.devcontainer/docker-compose.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ services:
1010
environment:
1111
- NODE_ENV=development
1212
- DATABASE_URL=postgresql://postgres:postgres@db:5432/simstudio
13-
- POSTGRES_URL=postgresql://postgres:postgres@db:5432/simstudio
1413
- BETTER_AUTH_URL=http://localhost:3000
1514
- NEXT_PUBLIC_APP_URL=http://localhost:3000
1615
- BUN_INSTALL_CACHE_DIR=/home/bun/.bun/cache

apps/sim/app/workspace/[workspaceId]/knowledge/hooks/use-knowledge-upload.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ const UPLOAD_CONFIG = {
8989
RETRY_DELAY: 2000, // Initial retry delay in ms (2 seconds)
9090
RETRY_MULTIPLIER: 2, // Standard exponential backoff (2s, 4s, 8s)
9191
CHUNK_SIZE: 5 * 1024 * 1024,
92-
VERCEL_MAX_BODY_SIZE: 4.5 * 1024 * 1024, // Vercel's 4.5MB limit
9392
DIRECT_UPLOAD_THRESHOLD: 4 * 1024 * 1024, // Files > 4MB must use presigned URLs
9493
LARGE_FILE_THRESHOLD: 50 * 1024 * 1024, // Files > 50MB need multipart upload
9594
UPLOAD_TIMEOUT: 60000, // 60 second timeout per upload

apps/sim/lib/auth-client.ts

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,7 @@ import { isBillingEnabled } from '@/lib/environment'
1414
import { SessionContext, type SessionHookResult } from '@/lib/session/session-context'
1515

1616
export function getBaseURL() {
17-
let baseURL
18-
19-
if (env.VERCEL_ENV === 'preview') {
20-
baseURL = `https://${getEnv('NEXT_PUBLIC_VERCEL_URL')}`
21-
} else if (env.VERCEL_ENV === 'development') {
22-
baseURL = `https://${getEnv('NEXT_PUBLIC_VERCEL_URL')}`
23-
} else if (env.VERCEL_ENV === 'production') {
24-
baseURL = env.BETTER_AUTH_URL || getEnv('NEXT_PUBLIC_APP_URL')
25-
} else if (env.NODE_ENV === 'development') {
26-
baseURL = getEnv('NEXT_PUBLIC_APP_URL') || env.BETTER_AUTH_URL || 'http://localhost:3000'
27-
}
28-
29-
return baseURL
17+
return getEnv('NEXT_PUBLIC_APP_URL') || 'http://localhost:3000'
3018
}
3119

3220
export const client = createAuthClient({

apps/sim/lib/auth.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ export const auth = betterAuth({
6363
baseURL: getBaseURL(),
6464
trustedOrigins: [
6565
env.NEXT_PUBLIC_APP_URL,
66-
...(env.NEXT_PUBLIC_VERCEL_URL ? [`https://${env.NEXT_PUBLIC_VERCEL_URL}`] : []),
6766
...(env.NEXT_PUBLIC_SOCKET_URL ? [env.NEXT_PUBLIC_SOCKET_URL] : []),
6867
].filter(Boolean),
6968
database: drizzleAdapter(db, {

apps/sim/lib/env.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ export const env = createEnv({
3636

3737

3838
// Database & Storage
39-
POSTGRES_URL: z.string().url().optional(), // Alternative PostgreSQL connection string
4039
REDIS_URL: z.string().url().optional(), // Redis connection string for caching/sessions
4140

4241
// Payment & Billing
@@ -99,7 +98,6 @@ export const env = createEnv({
9998

10099
// Infrastructure & Deployment
101100
NEXT_RUNTIME: z.string().optional(), // Next.js runtime environment
102-
VERCEL_ENV: z.string().optional(), // Vercel deployment environment
103101
DOCKER_BUILD: z.boolean().optional(), // Flag indicating Docker build environment
104102

105103
// Background Jobs & Scheduling
@@ -244,7 +242,6 @@ export const env = createEnv({
244242
client: {
245243
// Core Application URLs - Required for frontend functionality
246244
NEXT_PUBLIC_APP_URL: z.string().url(), // Base URL of the application (e.g., https://app.sim.ai)
247-
NEXT_PUBLIC_VERCEL_URL: z.string().optional(), // Vercel deployment URL for preview/production
248245

249246
// Client-side Services
250247
NEXT_PUBLIC_SOCKET_URL: z.string().url().optional(), // WebSocket server URL for real-time features
@@ -296,7 +293,6 @@ export const env = createEnv({
296293

297294
experimental__runtimeEnv: {
298295
NEXT_PUBLIC_APP_URL: process.env.NEXT_PUBLIC_APP_URL,
299-
NEXT_PUBLIC_VERCEL_URL: process.env.NEXT_PUBLIC_VERCEL_URL,
300296
NEXT_PUBLIC_BLOB_BASE_URL: process.env.NEXT_PUBLIC_BLOB_BASE_URL,
301297
NEXT_PUBLIC_BILLING_ENABLED: process.env.NEXT_PUBLIC_BILLING_ENABLED,
302298
NEXT_PUBLIC_GOOGLE_CLIENT_ID: process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID,

apps/sim/lib/security/csp.ts

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,6 @@ export const buildTimeCSPDirectives: CSPDirectives = {
3838
"'unsafe-eval'",
3939
'https://*.google.com',
4040
'https://apis.google.com',
41-
'https://*.vercel-scripts.com',
42-
'https://*.vercel-insights.com',
43-
'https://vercel.live',
44-
'https://*.vercel.live',
45-
'https://vercel.com',
46-
'https://*.vercel.app',
47-
'https://vitals.vercel-insights.com',
48-
'https://b2bjsstore.s3.us-west-2.amazonaws.com',
4941
],
5042

5143
'style-src': ["'self'", "'unsafe-inline'", 'https://fonts.googleapis.com'],
@@ -90,25 +82,15 @@ export const buildTimeCSPDirectives: CSPDirectives = {
9082
env.NEXT_PUBLIC_SOCKET_URL || 'http://localhost:3002',
9183
env.NEXT_PUBLIC_SOCKET_URL?.replace('http://', 'ws://').replace('https://', 'wss://') ||
9284
'ws://localhost:3002',
93-
'https://*.up.railway.app',
94-
'wss://*.up.railway.app',
9585
'https://api.browser-use.com',
9686
'https://api.exa.ai',
9787
'https://api.firecrawl.dev',
9888
'https://*.googleapis.com',
9989
'https://*.amazonaws.com',
10090
'https://*.s3.amazonaws.com',
10191
'https://*.blob.core.windows.net',
102-
'https://*.vercel-insights.com',
103-
'https://vitals.vercel-insights.com',
10492
'https://*.atlassian.com',
10593
'https://*.supabase.co',
106-
'https://vercel.live',
107-
'https://*.vercel.live',
108-
'https://vercel.com',
109-
'https://*.vercel.app',
110-
'wss://*.vercel.app',
111-
'https://pro.ip-api.com',
11294
'https://api.github.com',
11395
'https://github.com/*',
11496
...getHostnameFromUrl(env.NEXT_PUBLIC_BRAND_LOGO_URL),
@@ -168,12 +150,12 @@ export function generateRuntimeCSP(): string {
168150

169151
return `
170152
default-src 'self';
171-
script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.google.com https://apis.google.com https://*.vercel-scripts.com https://*.vercel-insights.com https://vercel.live https://*.vercel.live https://vercel.com https://*.vercel.app https://vitals.vercel-insights.com https://b2bjsstore.s3.us-west-2.amazonaws.com;
153+
script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.google.com https://apis.google.com;
172154
style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
173155
img-src 'self' data: blob: https://*.googleusercontent.com https://*.google.com https://*.atlassian.com https://cdn.discordapp.com https://*.githubusercontent.com https://*.public.blob.vercel-storage.com ${brandLogoDomain} ${brandFaviconDomain};
174156
media-src 'self' blob:;
175157
font-src 'self' https://fonts.gstatic.com;
176-
connect-src 'self' ${appUrl} ${ollamaUrl} ${socketUrl} ${socketWsUrl} https://*.up.railway.app wss://*.up.railway.app https://api.browser-use.com https://api.exa.ai https://api.firecrawl.dev https://*.googleapis.com https://*.amazonaws.com https://*.s3.amazonaws.com https://*.blob.core.windows.net https://api.github.com https://github.com/* https://*.vercel-insights.com https://vitals.vercel-insights.com https://*.atlassian.com https://*.supabase.co https://vercel.live https://*.vercel.live https://vercel.com https://*.vercel.app wss://*.vercel.app https://pro.ip-api.com ${dynamicDomainsStr};
158+
connect-src 'self' ${appUrl} ${ollamaUrl} ${socketUrl} ${socketWsUrl} https://api.browser-use.com https://api.exa.ai https://api.firecrawl.dev https://*.googleapis.com https://*.amazonaws.com https://*.s3.amazonaws.com https://*.blob.core.windows.net https://api.github.com https://github.com/* https://*.atlassian.com https://*.supabase.co ${dynamicDomainsStr};
177159
frame-src https://drive.google.com https://docs.google.com https://*.google.com;
178160
frame-ancestors 'self';
179161
form-action 'self';

apps/sim/socket-server/config/socket.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ const logger = createLogger('SocketIOConfig')
1212
function getAllowedOrigins(): string[] {
1313
const allowedOrigins = [
1414
env.NEXT_PUBLIC_APP_URL,
15-
env.NEXT_PUBLIC_VERCEL_URL,
1615
'http://localhost:3000',
1716
'http://localhost:3001',
1817
...(env.ALLOWED_ORIGINS?.split(',') || []),

apps/sim/socket-server/database/operations.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ import { loadWorkflowFromNormalizedTables } from '@/lib/workflows/db-helpers'
99

1010
const logger = createLogger('SocketDatabase')
1111

12-
// Create dedicated database connection for socket server with optimized settings
13-
const connectionString = env.POSTGRES_URL ?? env.DATABASE_URL
12+
const connectionString = env.DATABASE_URL
1413
const socketDb = drizzle(
1514
postgres(connectionString, {
1615
prepare: false,

apps/sim/socket-server/rooms/manager.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ import type { Server } from 'socket.io'
77
import { env } from '@/lib/env'
88
import { createLogger } from '@/lib/logs/console/logger'
99

10-
// Create dedicated database connection for room manager
11-
const connectionString = env.POSTGRES_URL ?? env.DATABASE_URL
10+
const connectionString = env.DATABASE_URL
1211
const db = drizzle(
1312
postgres(connectionString, {
1413
prepare: false,

apps/sim/socket-server/routes/http.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ interface Logger {
1616
*/
1717
export function createHttpHandler(roomManager: RoomManager, logger: Logger) {
1818
return (req: IncomingMessage, res: ServerResponse) => {
19-
// Handle health check for Railway
2019
if (req.method === 'GET' && req.url === '/health') {
2120
res.writeHead(200, { 'Content-Type': 'application/json' })
2221
res.end(

0 commit comments

Comments
 (0)