OpenForge는 국내 시장 우선의 1인용 자동매매 운영 앱을 목표로 하는 모노레포다. Svelte + Vite 웹, Spring Boot 4 + Kotlin API, PostgreSQL 기반 로컬 실행 환경을 제공한다.
apps/web: Svelte/Vite 운영 콘솔apps/api: 헬스체크, 공통 설정, Flyway 마이그레이션infra: 로컬 PostgreSQL용 Docker Composedocs: 로컬 개발, 시스템 구조, 원격 접속 초안.env.example을 .env로 복사.env의 API_PORT, WEB_PORT를 수정pnpm install --frozen-lockfilepnpm dev:dbpnpm dev:apipnpm dev:webpnpm dev:allDB 컨테이너를 중지/제거하되 데이터 볼륨을 보존하려면 pnpm dev:db:down을 사용한다. 로컬 DB 데이터를 초기화해야 할 때만 pnpm dev:db:reset을 사용한다.
포트 기본값은 API 8080, Web 3000이며, API_BASE_URL과 WEB_ORIGIN은 필요 시 개별 override 용도로 유지한다.
검증은 pnpm check, 실행 중 서비스 점검은 pnpm smoke를 사용한다. 배포용 Jar는 pnpm jar로 생성하며, 이 과정에서 apps/web의 Vite 빌드 산출물이 Jar 정적 리소스로 포함된다.
pnpm dev:dbpnpm dev:db:downpnpm dev:db:resetpnpm dev:apipnpm dev:webpnpm dev:allpnpm checkpnpm smokepnpm jarpnpm jar:smokeWindows에서도 같은 pnpm 명령을 사용한다. 내부적으로는 scripts/openforge.ps1가 호출된다.
.env 또는 운영 환경변수에서 DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD, OPENFORGE_AUTH_PASSWORD, OPENFORGE_JWT_SECRET를 확인한다.pnpm check로 API 테스트와 Web lint/typecheck/test/build를 실행한다.pnpm jar로 배포 Jar를 생성한다.pnpm jar:smoke로 Jar 실행, 헬스체크, 주요 SPA 라우트, Vite asset 로딩을 점검한다./api/v1/health, /, 주요 딥링크 새로고침, /assets/index-*.js 응답을 확인한다.Vite가 생성한 /assets/** 정적 파일은 해시 파일명을 전제로 장기 캐시된다. index.html은 캐시 정책을 별도로 길게 두지 않아 새 배포의 asset 참조가 바로 반영되도록 유지한다.