Skip to content

Repository files navigation

Orbit

여러 웹사이트의 URL·path 헬스체크를 등록하고, 상태를 한곳에서 보는 uptime 모니터링 웹 앱입니다.
수동 검사, Cron 자동 검사, Discord 알림(장애·복구 전환 시)을 지원합니다.

항목 내용
시기 2026-05 (Phase 1 MVP → Phase 2 Auth/Cron)
apps/web
스택 Next.js 16 · React 19 · Supabase · shadcn/ui · Turborepo

주요 기능

  • 사이트 등록 — 이름, base URL, 헬스 모드(root / paths / both)
  • Path 모니터링 — 사이트별 하위 path 추가·검사
  • 대시보드 — 사이트 카드, 정상/장애 요약, 수동 전체 검사
  • 사이트 상세 — path별 최근 결과, 응답 시간·상태 코드
  • 인증 — Google OAuth (@supabase/ssr), 사용자별 데이터 격리(RLS)
  • 자동 검사 — Vercel Cron → GET /api/cron/check
  • 알림 — Discord Webhook (down/up 전환 시만)
  • 설정 — Discord Webhook URL 관리

기술 스택

구분 기술
프레임워크 Next.js 16 (App Router, Turbopack)
UI React 19, shadcn/ui (base-maia), Tailwind CSS v4
모노레포 pnpm workspaces, Turborepo
DB / Auth Supabase (Postgres, RLS, OAuth)
배포·Cron Vercel Cron + CRON_SECRET
알림 Discord Webhooks

프로젝트 구조

orbit/
├── apps/web/                 # Next.js 앱
│   ├── app/                  # dashboard, sites/[id], login, settings, api/cron
│   ├── components/orbit/     # UI (SiteCard, AddSiteSheet, StatusBadge …)
│   └── lib/
│       ├── monitor/          # URL 검사, run-checks, health-mode
│       ├── notifications/    # Discord, failure-alerts
│       └── supabase/         # auth, server client, types
├── packages/ui/              # 공유 shadcn 컴포넌트
├── supabase/migrations/      # DB 스키마·RLS
└── docs/solutions/monitoring/  # Phase 1·2 구현 기록

로컬 실행

요구 사항

  • Node.js >= 20
  • pnpm 9
  • Supabase 프로젝트 (URL, publishable key, secret key)

환경 변수

apps/web/.env.local (.env.example 참고):

NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=
SUPABASE_SECRET_KEY=
CRON_SECRET=          # Cron API 보호용

명령

pnpm install
pnpm dev              # apps/web 개발 서버
pnpm build
pnpm typecheck
pnpm lint

Supabase 마이그레이션은 supabase/migrations/를 프로젝트에 적용한 뒤 사용하세요.

Cron (로컬·배포)

# Authorization: Bearer <CRON_SECRET>
curl -H "Authorization: Bearer $CRON_SECRET" \
  http://localhost:3000/api/cron/check

개발 단계

Phase 내용 문서
1 MVP — 수동 검사, sites/paths/results docs/solutions/monitoring/phase1-mvp-manual-monitoring.md
2 Auth, Cron, Discord, RLS docs/solutions/monitoring/phase2-auth-cron-discord.md

에이전트·구현 규칙은 루트 AGENTS.md를 참고하세요.


스크린샷

(배포 URL 또는 스크린샷 추가 시 여기에 링크)


라이선스

개인 프로젝트. 별도 LICENSE 없음.


작성자

김관응 (@kwaneung)

About

웹사이트 uptime 모니터링 — Next.js 16, Supabase, Cron, Discord 알림

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages