Next.js(App Router) + NextAuth(v5) + Prisma 기반 프로젝트입니다.
운영 배포는 Vercel + Neon(Postgres) 조합을 권장합니다.
- 환경변수 준비
env.example을 복사해서.env.local로 만드세요.- 값은 본인 환경에 맞게 채우세요.
- 의존성 설치
npm install- DB 스키마 반영(처음 1회)
npm run db:push- 관리자 계정 생성/갱신(처음 1회 또는 필요 시)
npm run db:seed-admin- 개발 서버 실행
npm run dev- Neon에서 프로젝트 생성
- 연결 문자열 2개를 준비
- Pooled URL →
DATABASE_URL - Direct URL →
DIRECT_URL
- Pooled URL →
- Vercel에서 “New Project” →
HechoLP/willbrain선택 → Import
Vercel 프로젝트의 Environment Variables에 아래를 추가하세요.
DATABASE_URL: Neon Pooled URLDIRECT_URL: Neon Direct URLAUTH_SECRET: 랜덤 문자열(32바이트 이상 권장)AUTH_URL: 배포 도메인(예:https://willbrain.vercel.app)AUTH_TRUST_HOST:true
Neon은 이미 운영 DB이므로, 로컬에서 Neon으로 직접 붙어서 한 번만 실행하면 됩니다.
npm run db:push
npm run db:seed-admin배포가 완료되면 Vercel 도메인으로 접속하여 동작을 확인합니다.
현재 리포지토리는 GitHub 푸시 제한 때문에 *.mp4 파일을 Git에서 제외하고 있습니다.
따라서 배포 환경에서도 배너 영상이 필요하면 아래 중 하나로 처리해야 합니다.
- 영상 파일을 100MB 미만으로 줄인 뒤 Git LFS 또는 별도 스토리지에 업로드하고, 코드에서는 외부 URL을 사용
- Vercel/외부 스토리지(예: S3/R2)에 업로드 후
<video src="...">를 해당 URL로 변경
이미 코드에서 외부 URL을 우선 사용하도록 되어 있습니다.
NEXT_PUBLIC_HERO_VIDEO_URL: mp4 URLNEXT_PUBLIC_HERO_VIDEO_POSTER_URL(선택): 포스터 이미지 URL
설정이 없거나 로딩이 실패하면, 배너 영역은 자동으로 안전한 그라데이션 배경으로 폴백합니다.