Deployment
Meerkit으로 만든 내 서비스를 운영 환경에 배포할 때 설정하고 확인할 것입니다.
Meerkit으로 만든 내 서비스를 운영 환경에 올릴 때 설정하고 확인할 것을 정리했습니다. 로컬 개발은 Installation 페이지를 보세요.
백엔드는 아직 구현 전이라 서버 관련 항목은 설계 기준(예정)입니다. 프론트엔드 항목은 지금 그대로 적용할 수 있습니다.
What you deploy
| 구성 | 설명 | 실행 |
|---|---|---|
| Frontend | Next.js 앱 (standalone 출력) | node .next/standalone/server.js |
| Backend | FastAPI 앱 | uvicorn app.main:app |
| Database | PostgreSQL | 관리형 DB 또는 컨테이너 |
컨테이너 이미지(Dockerfile)는 아직 제공하지 않습니다. 호스팅 환경에 맞게 직접 구성하세요.
Build the frontend
bash
cd frontend
npm ci
npm run build
node .next/standalone/server.jsnext.config.ts의 output: "standalone" 덕분에 필요한 파일만 담긴 폴더가 만들어집니다. 정적 파일(public, .next/static)은 함께 복사해야 합니다.
Environment variables
| 변수 | 운영 값 | 설명 |
|---|---|---|
API_PROXY_TARGET | 운영 백엔드 주소 | /api 요청을 전달할 곳. 내부 주소를 쓸 수 있습니다. |
NEXT_PUBLIC_API_BASE_URL | /api | 바꾸지 않는 것을 권장합니다. 같은 도메인이라 쿠키와 CORS가 단순해집니다. |
NEXT_PUBLIC_SHOW_DOCS_PAGE | false | 내 서비스에서 /docs 라우트를 닫습니다. |
NEXT_PUBLIC_DOCS_URL | 내 문서 주소 | 웰컴 페이지의 Docs 버튼이 열 주소. 쓰지 않는다면 버튼을 지우세요. |
NEXT_PUBLIC_로 시작하는 값은 빌드 시점에 번들에 들어가고 브라우저에 공개됩니다. 비밀값을 넣지 마세요. 환경 변수를 바꾸면 다시 빌드해야 합니다.Backend (planned)
- 배포 순서: 마이그레이션 → 백엔드 → 프론트엔드. 새 컬럼을 쓰는 프론트가 먼저 올라가지 않게 합니다.
- 운영용
.env를 새로 만듭니다 (JWT 비밀키, DB 주소). 로컬 값을 복사하지 마세요. - 시드 관리자 계정은 로컬 테스트용입니다. 운영에서는 비밀번호를 바꾸거나 삭제하세요.
Cookies & HTTPS
- 리프레시 쿠키는
HttpOnly,Secure,SameSite=Lax로 설정합니다.Secure는 HTTPS에서만 전달됩니다. - 프론트와 백엔드가 같은 도메인(프록시)이면 CORS 설정을 늘릴 필요가 없습니다.
- 도메인을 나누어 배포한다면 쿠키 도메인과 CORS 허용 출처를 직접 맞춰야 합니다.
Go-live checklist
- HTTPS가 켜져 있고 HTTP는 HTTPS로 이동한다
/docs가 닫혀 있거나 별도 주소로 옮겨져 있다- 시드 관리자 비밀번호를 바꿨거나 계정을 지웠다
- 운영 JWT 비밀키가 새로 만들어졌고 저장소에 없다
- 로그인·가입·역할 변경을 운영 환경에서 한 번씩 시험했다
- Security 페이지의 체크리스트를 확인했다
