LawCast는 국회 입법예고 변동을 수집하고, Discord 웹훅 알림과 웹 UI로 제공하는 셀프호스트형 플랫폼입니다.
이 저장소는 백엔드/프론트엔드 서브모듈을 묶는 루트 오케스트레이션 레이어로, 다음 역할에 집중합니다.
- 서비스 전체 실행/배포 진입점 제공
- 백엔드 + 프론트엔드 개발 동선 통합
- Docker Compose 기반 운영 구성 관리
루트 README는 "빠르게 이해하고 바로 실행"하는 허브 문서입니다.
- 백엔드 내부 아키텍처/크론/데이터 무결성 상세는 백엔드 문서에서 관리
- UI 구조/페이지/필터 UX 상세는 프론트엔드 문서에서 관리
- 루트는 시스템 관점(구성, 실행 순서, 운영 스크립트)에만 집중
flowchart LR
U[User Browser] --> F[Frontend\nSvelteKit]
F --> B[Backend\nNestJS]
B --> R[(Redis)]
B --> D[(SQLite Volume)]
B --> O[Ollama Optional]
B --> P[PAL/NSM Crawling]
B --> W[Discord Webhook]
- backend: NestJS API 서버 서브모듈
- frontend: SvelteKit 웹 앱 서브모듈
- docker-compose.yml: 통합 컨테이너 오케스트레이션
- deploy.sh: 서비스별/전체 롤링 업데이트 스크립트
- submodule_util.sh: 서브모듈 동기화/업데이트 유틸리티
- 입법예고 자동 수집 및 Discord 실시간 알림
- 로그인 없는 웹훅 등록 UX
- 전체 입법예고 조회, 검색/날짜 필터/정렬
- AI 요약 브리핑 카드 및 원문 조회 페이지
- 요약 오류 가능성 고지 포함(참고용 안내)
git submodule update --init --recursive백엔드
cd backend
npm install
npm run start:dev프론트엔드
cd frontend
npm install
npm run dev- 기본 접속 주소: 프론트엔드 http://localhost:5173
- API 기본 주소(개발): 백엔드 http://localhost:3001
환경 변수 상세는 각 문서를 참고하세요.
docker compose up -d --build기본 포트
- Frontend: 127.0.0.1:3002
- Backend: 127.0.0.1:3001
- Redis: 127.0.0.1:6399
- Ollama: 127.0.0.1:11434
중지
docker compose down- 전체 롤링 업데이트
./deploy.sh- 특정 서비스만 업데이트
./deploy.sh backend
./deploy.sh frontend- 서비스 목록 조회
./deploy.sh list- 서브모듈 원격 정보 동기화: ./submodule_util.sh sync
- 최신 커밋으로 업데이트: ./submodule_util.sh update
- 특정 브랜치로 전환/동기화: ./submodule_util.sh branch
- 백엔드 상세: backend/README.md
- 프론트엔드 상세: frontend/README.md
MIT License
자세한 내용은 LICENSE 파일을 참고하세요.
- pal-crawl: 국회 입법예고 크롤러 라이브러리
- pal-webhook: Discord 웹훅 알림 참조 구현