직무발명 신고, 심의/평가, 특허, 보상, 정책 관리를 위한 monorepo입니다.
- 기능 코드는 하나의 공통 코드베이스로 유지합니다.
- 장기 브랜치 분리는 하지 않고
main을 기준으로 개발합니다. - 환경 차이는 코드 분기가 아니라
deploy,env,문서,CI/CD설정으로만 분리합니다. - 배포 프로파일의 진실 원천은
deploy/cloud,deploy/onprem, 루트 env 예시 파일입니다.
apps/api: NestJS APIapps/web: Next.js web appprisma: Prisma schemadeploy/cloud: Cloud Build, Cloud Run, cloud env templatesdeploy/onprem: on-prem 운영 메모docs: 배포/운영/설계 문서
로컬 개발 기본 포트:
- Web:
22021 - API:
22020 - Postgres(on-prem profile):
22022
실행 순서:
cp .env.example .env docker compose up -d npm install npm run prisma:generate npm run dev
접속 주소:
- Web:
http://localhost:22021 - API:
http://localhost:22020/api/v1 - Swagger:
http://localhost:22020/api/docs
공통 예시 env:
.env.example.env.common.example
Cloud 프로파일은 deploy/cloud를 기준으로 관리합니다.
주요 파일:
deploy/cloud/cloudbuild.web.yamldeploy/cloud/cloudbuild.api.yamldeploy/cloud/cloud-run.web.yamldeploy/cloud/cloud-run.api.yaml.env.cloud.example
현재 운영 구조:
- Web service:
patent-manager - API service:
patent-manager-api
현재 운영 URL:
- Web:
https://patent-manager-k6y2romega-du.a.run.app - API:
https://patent-manager-api-k6y2romega-du.a.run.app
추가 문서:
- deploy-cloud.md
GitHub push 기반 Cloud Build 트리거는 cloud 전용으로만 유지합니다.
-
patent-manager-web-main- 대상:
apps/web/**,apps/web/Dockerfile,deploy/cloud/cloudbuild.web.yaml, 루트package*.json,.dockerignore - 결과: Cloud Run web service
patent-manager
- 대상:
-
patent-manager-api-main- 대상:
apps/api/**,prisma/**,apps/api/Dockerfile,deploy/cloud/cloudbuild.api.yaml, 루트package*.json,.dockerignore - 결과: Cloud Run API service
patent-manager-api
- 대상:
즉:
- 웹 변경 푸시 -> 웹만 자동배포
- API 또는 Prisma 변경 푸시 -> API만 자동배포
On-prem 프로파일은 내부망 서버 기준 web + api + postgres를 기본 세트로 제공합니다.
주요 파일:
docker-compose.onprem.yml.env.onprem.exampledeploy/onprem/README.md
기본 실행:
cp .env.onprem.example .env.onprem docker compose --env-file .env.onprem -f docker-compose.onprem.yml up -d --build
포트 규칙:
22020: API22021: Web22022: Postgres
현재 이 PC에서는 로컬 개발 서버와의 충돌을 피하려고 실제 .env.onprem 값을
23020, 23021, 23022로 잡아둔 상태입니다.
보조 스크립트:
npm run onprem:upnpm run onprem:downnpm run onprem:logs
추가 문서:
- deploy-onprem.md
.env.example: 공통 최소값.env.common.example: 공통 운영 키 예시.env.cloud.example: cloud 운영 예시.env.onprem.example: on-prem 운영 예시
- API는 Postgres 연결만 바꾸면 GCP Cloud SQL 또는 Supabase 같은 외부 Postgres를 모두 사용할 수 있습니다.
- 문서 저장은
STORAGE_BACKEND환경변수로local또는gcs를 선택할 수 있습니다. - 내부망 운영은 compose 기준, cloud 운영은 Cloud Build/Cloud Run 기준으로 분리 관리합니다.