From 431bfc0c9ac8c58cf0a25b4c5bb9211d2e253d14 Mon Sep 17 00:00:00 2001 From: Hyoseong Jo Date: Tue, 9 Dec 2025 23:02:49 +0900 Subject: [PATCH 1/9] =?UTF-8?q?=EA=B0=9C=EB=B0=9C=EC=84=9C=EB=B2=84?= =?UTF-8?q?=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=EC=84=A4=EC=A0=95=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 102 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 .env.development diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..f250ef8 --- /dev/null +++ b/.env.development @@ -0,0 +1,102 @@ +# ============================================== +# DEVELOPMENT ENVIRONMENT VARIABLES +# ============================================== +# Copy this file to .env.local for local development +# DO NOT commit sensitive values to version control + +# ============================================== +# DATABASE CONFIGURATION +# ============================================== +DATABASE_URL=postgresql://user:password@localhost:5432/genome_db +POSTGRES_HOST=192.168.11.46 +POSTGRES_USER=genome +POSTGRES_PASSWORD=genome1@3 +POSTGRES_DB=genome_db +POSTGRES_PORT=5431 +POSTGRES_SYNCHRONIZE=true +POSTGRES_LOGGING=true + +# ============================================== +# REDIS CONFIGURATION +# ============================================== +REDIS_URL=redis://192.168.11.46:6379 +REDIS_HOST=localhost +REDIS_PORT=6379 + +# ============================================== +# BACKEND CONFIGURATION +# ============================================== +BACKEND_PORT=4000 +NODE_ENV=development + +# ============================================== +# JWT AUTHENTICATION +# ============================================== +JWT_SECRET=your-super-secret-jwt-key-change-this-in-production +JWT_EXPIRES_IN=24h +JWT_REFRESH_SECRET=your-refresh-token-secret +JWT_REFRESH_EXPIRES_IN=7d + +# ============================================== +# CORS CONFIGURATION +# ============================================== +CORS_ORIGIN=http://localhost:3000,http://192.168.11.46:3000,http://123.143.174.11:5244 +CORS_CREDENTIALS=true + +# ============================================== +# SECURITY SETTINGS +# ============================================== +RATE_LIMIT_WINDOW_MS=900000 +RATE_LIMIT_MAX_REQUESTS=100 +BCRYPT_SALT_ROUNDS=12 + +# ============================================== +# FILE UPLOAD +# ============================================== +MAX_FILE_SIZE=10485760 +UPLOAD_DESTINATION=./uploads +ALLOWED_FILE_TYPES=jpg,jpeg,png,gif,pdf,doc,docx + +# ============================================== +# EMAIL CONFIGURATION +# ============================================== +SMTP_HOST=smtp.gmail.com +SMTP_PORT=587 +SMTP_SECURE=false +SMTP_USER=your-email@gmail.com +SMTP_PASS=your-app-password +FROM_EMAIL=noreply@yourdomain.com + +# ============================================== +# LOGGING +# ============================================== +LOG_LEVEL=debug +LOG_FORMAT=dev +LOG_FILE_ENABLED=true +LOG_FILE_PATH=./logs + +# ============================================== +# EXTERNAL SERVICES +# ============================================== +# AWS_ACCESS_KEY_ID=your-aws-access-key +# AWS_SECRET_ACCESS_KEY=your-aws-secret +# AWS_REGION=us-east-1 +# AWS_S3_BUCKET=your-bucket-name + +# ============================================== +# MONITORING +# ============================================== +# SENTRY_DSN=your-sentry-dsn +# HEALTH_CHECK_ENABLED=true + +# ============================================== +# FRONTEND CONFIGURATION +# ============================================== +FRONTEND_PORT=3000 +NEXT_PUBLIC_API_URL=/api + +# ============================================== +# NGINX CONFIGURATION +# ============================================== +NGINX_HTTP_PORT=80 +NGINX_HTTPS_PORT=443 \ No newline at end of file From 2829c40c2525bbcc495e741eaf94e8699acf8910 Mon Sep 17 00:00:00 2001 From: Hyoseong Jo Date: Tue, 9 Dec 2025 23:16:20 +0900 Subject: [PATCH 2/9] =?UTF-8?q?=EA=B0=9C=EB=B0=9C=EC=84=9C=EB=B2=84?= =?UTF-8?q?=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=EC=84=A4=EC=A0=95=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/Dockerfile | 57 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 6 deletions(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index 7f42a65..b677891 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,8 +1,53 @@ -FROM node:24-alpine +# ============================================== +# Build Stage - NestJS 빌드 +# ============================================== +FROM node:24-alpine AS builder + WORKDIR /app -RUN apk add --no-cache curl -COPY package*.json . -RUN npm install + +# package.json과 package-lock.json 복사 +COPY package*.json ./ + +# 의존성 설치 (devDependencies 포함) +RUN npm ci + +# 소스 코드 복사 COPY . . -CMD ["npm", "run", "start:dev"] -EXPOSE 4000 \ No newline at end of file + +# NestJS 프로젝트 빌드 +RUN npm run build + +# ============================================== +# Production Stage - 실행 이미지 생성 +# ============================================== +FROM node:24-alpine + +WORKDIR /app + +# curl 설치 (헬스체크용) +RUN apk add --no-cache curl + +# package.json 복사 +COPY package*.json ./ + +# 프로덕션 의존성만 설치 +RUN npm ci --only=production + +# 빌드된 파일 복사 +COPY --from=builder /app/dist ./dist + +# 환경 변수 파일 복사 +COPY ../.env.development ./.env + +# 업로드 디렉토리 생성 +RUN mkdir -p ./uploads ./logs + +# 포트 노출 +EXPOSE 4000 + +# 헬스체크 +HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \ + CMD curl -f http://localhost:4000/health || exit 1 + +# 애플리케이션 실행 +CMD ["node", "dist/main"] From f5ff2cd89d562a04dd5058af1a46d7da9b4228a0 Mon Sep 17 00:00:00 2001 From: Hyoseong Jo Date: Tue, 9 Dec 2025 23:36:13 +0900 Subject: [PATCH 3/9] =?UTF-8?q?=EA=B0=9C=EB=B0=9C=EC=84=9C=EB=B2=84?= =?UTF-8?q?=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=EC=84=A4=EC=A0=95=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/Dockerfile | 45 ++++++++------------------------------------- 1 file changed, 8 insertions(+), 37 deletions(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index b677891..16fe12f 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,53 +1,24 @@ -# ============================================== -# Build Stage - NestJS 빌드 -# ============================================== -FROM node:24-alpine AS builder - -WORKDIR /app - -# package.json과 package-lock.json 복사 -COPY package*.json ./ - -# 의존성 설치 (devDependencies 포함) -RUN npm ci - -# 소스 코드 복사 -COPY . . - -# NestJS 프로젝트 빌드 -RUN npm run build - -# ============================================== -# Production Stage - 실행 이미지 생성 -# ============================================== FROM node:24-alpine WORKDIR /app -# curl 설치 (헬스체크용) +# 필요한 패키지 설치 RUN apk add --no-cache curl # package.json 복사 COPY package*.json ./ -# 프로덕션 의존성만 설치 -RUN npm ci --only=production +# 의존성 설치 +RUN npm install -# 빌드된 파일 복사 -COPY --from=builder /app/dist ./dist +# 소스 코드 복사 +COPY . . -# 환경 변수 파일 복사 -COPY ../.env.development ./.env - -# 업로드 디렉토리 생성 -RUN mkdir -p ./uploads ./logs +# NestJS 빌드 +RUN npm run build # 포트 노출 EXPOSE 4000 -# 헬스체크 -HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \ - CMD curl -f http://localhost:4000/health || exit 1 - # 애플리케이션 실행 -CMD ["node", "dist/main"] +CMD ["npm", "run", "start:prod"] From 7cdcb5ff7cfe32fcca908cdb75104b09911acc61 Mon Sep 17 00:00:00 2001 From: Hyoseong Jo Date: Tue, 9 Dec 2025 23:48:09 +0900 Subject: [PATCH 4/9] =?UTF-8?q?=EA=B0=9C=EB=B0=9C=EC=84=9C=EB=B2=84?= =?UTF-8?q?=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=EC=84=A4=EC=A0=95=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/Dockerfile b/backend/Dockerfile index 16fe12f..fa8217e 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -14,6 +14,8 @@ RUN npm install # 소스 코드 복사 COPY . . +COPY ../.env.development ./.env + # NestJS 빌드 RUN npm run build From a6eea434078bd5bd887406ea74fb0d4df863ab1e Mon Sep 17 00:00:00 2001 From: Hyoseong Jo Date: Tue, 9 Dec 2025 23:48:46 +0900 Subject: [PATCH 5/9] =?UTF-8?q?=EA=B0=9C=EB=B0=9C=EC=84=9C=EB=B2=84?= =?UTF-8?q?=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=EC=84=A4=EC=A0=95=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/Dockerfile b/backend/Dockerfile index fa8217e..e27d278 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -14,6 +14,8 @@ RUN npm install # 소스 코드 복사 COPY . . +RUN ls -al + COPY ../.env.development ./.env # NestJS 빌드 From 5c70490706ade82e7c86d4f7accd87e71d98ef0f Mon Sep 17 00:00:00 2001 From: Hyoseong Jo Date: Tue, 9 Dec 2025 23:49:53 +0900 Subject: [PATCH 6/9] =?UTF-8?q?=EA=B0=9C=EB=B0=9C=EC=84=9C=EB=B2=84?= =?UTF-8?q?=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=EC=84=A4=EC=A0=95=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index e27d278..6c5ea00 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -14,7 +14,7 @@ RUN npm install # 소스 코드 복사 COPY . . -RUN ls -al +RUN ls -al .. COPY ../.env.development ./.env From 8e1e7929038993bec0148ff627565b1d4734109b Mon Sep 17 00:00:00 2001 From: Hyoseong Jo Date: Tue, 9 Dec 2025 23:51:46 +0900 Subject: [PATCH 7/9] =?UTF-8?q?=EA=B0=9C=EB=B0=9C=EC=84=9C=EB=B2=84?= =?UTF-8?q?=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=EC=84=A4=EC=A0=95=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/Dockerfile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index 6c5ea00..16fe12f 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -14,10 +14,6 @@ RUN npm install # 소스 코드 복사 COPY . . -RUN ls -al .. - -COPY ../.env.development ./.env - # NestJS 빌드 RUN npm run build From 1a7872256ca623c52e151b318cb96e661f0e2ac5 Mon Sep 17 00:00:00 2001 From: Hyoseong Jo Date: Wed, 10 Dec 2025 00:02:08 +0900 Subject: [PATCH 8/9] =?UTF-8?q?=EA=B0=9C=EB=B0=9C=EC=84=9C=EB=B2=84?= =?UTF-8?q?=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=EC=84=A4=EC=A0=95=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/Dockerfile | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 9fc1ba9..b6c9cbf 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -1,8 +1,24 @@ FROM node:24-alpine + WORKDIR /app + +# curl 설치 (헬스체크용) RUN apk add --no-cache curl -COPY package*.json . + +# package.json 복사 +COPY package*.json ./ + +# 의존성 설치 RUN npm install + +# 소스 코드 복사 COPY . . -CMD ["npm", "run", "dev"] -EXPOSE 3000 \ No newline at end of file + +# Next.js 빌드 +RUN npm run build + +# 포트 노출 +EXPOSE 3000 + +# 애플리케이션 실행 +CMD ["npm", "start"] From 58e77a390138df6cca764ae85b5daf338a922e95 Mon Sep 17 00:00:00 2001 From: Hyoseong Jo Date: Wed, 10 Dec 2025 00:05:35 +0900 Subject: [PATCH 9/9] =?UTF-8?q?=EA=B0=9C=EB=B0=9C=EC=84=9C=EB=B2=84?= =?UTF-8?q?=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=EC=84=A4=EC=A0=95=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/Dockerfile | 4 ++++ frontend/next.config.ts | 9 +++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/frontend/Dockerfile b/frontend/Dockerfile index b6c9cbf..3fd053b 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -14,6 +14,10 @@ RUN npm install # 소스 코드 복사 COPY . . +# 빌드 시 필요한 환경 변수 설정 +ENV NEXT_TELEMETRY_DISABLED=1 +ENV NODE_ENV=production + # Next.js 빌드 RUN npm run build diff --git a/frontend/next.config.ts b/frontend/next.config.ts index b9074d2..38babdf 100644 --- a/frontend/next.config.ts +++ b/frontend/next.config.ts @@ -3,11 +3,12 @@ import type { NextConfig } from "next"; // Next.js 핵심 설정 파일, Next.js가 시작할 때 이 파일을 찾아서 읽음 // 여기에 Next.js 설정 옵션을 정의할 수 있음 const nextConfig: NextConfig = { - /* config options here eslint: { - ignoreDuringBuilds: true, // 빌드 시 ESLint warning 무시 - }, - */ + ignoreDuringBuilds: true, // 빌드 시 ESLint warning 무시 + }, + typescript: { + ignoreBuildErrors: true, // 빌드 시 TypeScript 에러 무시 (임시) + }, async rewrites() { return [ {