From e15ca974fe4999c661cd16e1be6801c0d1d7b300 Mon Sep 17 00:00:00 2001 From: Bonchellon Date: Fri, 6 Feb 2026 02:46:55 +0300 Subject: [PATCH] 123 --- .env.example | 10 +++++----- apps/api/src/main.ts | 8 ++++---- apps/web/src/lib/api.ts | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.env.example b/.env.example index 228bbc5..36ca855 100644 --- a/.env.example +++ b/.env.example @@ -6,7 +6,7 @@ # - NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY — один и тот же проект Supabase # - SUPABASE_SERVICE_ROLE_KEY — из того же проекта (Settings → API → service_role secret) # - JWT_SECRET — любая длинная строка (для подписи JWT на бэкенде) -# - NEXT_PUBLIC_API_URL — URL бэкенда (для фронта; если не задан, по умолчанию localhost:3001) +# - NEXT_PUBLIC_API_URL — URL бэкенда (для фронта; если не задан, по умолчанию localhost:3125) # # =========================================== @@ -53,10 +53,10 @@ S3_SECRET_ACCESS_KEY="your-secret-key" S3_BUCKET_NAME="coursecraft" S3_REGION="auto" -# App URLs -NEXT_PUBLIC_APP_URL="http://localhost:3125" -NEXT_PUBLIC_API_URL="http://localhost:3001" -API_URL="http://localhost:3001" +# App URLs (API на 3125; веб — свой порт, напр. 3000) +NEXT_PUBLIC_APP_URL="http://localhost:3000" +NEXT_PUBLIC_API_URL="http://localhost:3125" +API_URL="http://localhost:3125" AI_SERVICE_URL="http://localhost:3002" # JWT Secret — ОБЯЗАТЕЛЕН для API (подпись токенов после обмена с Supabase) diff --git a/apps/api/src/main.ts b/apps/api/src/main.ts index 480a44d..e20ab66 100644 --- a/apps/api/src/main.ts +++ b/apps/api/src/main.ts @@ -12,14 +12,14 @@ async function bootstrap() { // Security app.use(helmet()); - // CORS (веб на порту 3125) + // CORS (веб часто на 3000) const allowedOrigins = [ configService.get('NEXT_PUBLIC_APP_URL'), - 'http://localhost:3125', 'http://localhost:3000', + 'http://localhost:3125', ].filter(Boolean) as string[]; app.enableCors({ - origin: allowedOrigins.length ? allowedOrigins : 'http://localhost:3125', + origin: allowedOrigins.length ? allowedOrigins : 'http://localhost:3000', credentials: true, }); @@ -50,7 +50,7 @@ async function bootstrap() { SwaggerModule.setup('docs', app, document); } - const port = configService.get('PORT') || 3001; + const port = configService.get('PORT') || 3125; await app.listen(port); console.log(`🚀 API is running on: http://localhost:${port}/api`); diff --git a/apps/web/src/lib/api.ts b/apps/web/src/lib/api.ts index 99284fc..933545e 100644 --- a/apps/web/src/lib/api.ts +++ b/apps/web/src/lib/api.ts @@ -1,4 +1,4 @@ -const API_BASE = process.env.NEXT_PUBLIC_API_URL || 'http://localhost:3001'; +const API_BASE = process.env.NEXT_PUBLIC_API_URL || 'http://localhost:3125'; const API_URL = `${API_BASE}/api`; const STORAGE_KEY = 'coursecraft_api_token';