1
0
forked from baron/baron-sso
Files
baron-sso/README.md
2025-12-23 17:59:37 +09:00

3.2 KiB

Baron SSO

Baron SSO는 화이트 라벨링된 사용자 인증 허브이자 통합 런처입니다. Descope를 활용하여 안전한 비밀번호 없는 인증(Enchanted Link)을 제공하며, Flutter로 구현된 커스텀 UI를 통해 매끄러운 사용자 경험을 보장합니다. Backend는 Go (Fiber)와 ClickHouse를 사용하여 대용량 감사 로그(Audit Log)를 관리합니다.

🏗 아키텍처 (Architecture)

1. Frontend (Flutter Web)

  • Framework: Flutter 3.32+
  • Organization: kr.co.baroncs
  • Key Packages: descope, flutter_riverpod, go_router
  • Features:
    • 탭 기반 로그인 UI (이메일 / SMS)
    • Descope SDK 연동 (Enchanted Link)

2. Backend (Go Fiber)

  • Language: Go 1.25+
  • Framework: Fiber v2.25+
  • Database:
    • ClickHouse: 감사 로그 (고성능 데이터 수집)
    • PostgreSQL: 메타데이터 저장소 (Primary)
  • Features:
    • POST /api/v1/audit: 감사 로그 수집 API

3. Infrastructure (Docker)

  • Services: postgres, clickhouse (compose.infra.yaml에 정의됨)
  • App: frontend, backend (docker-compose.yaml에 정의됨)

🚀 시작하기 (Getting Started)

사전 요구사항 (Prerequisites)

  • Docker & Docker Compose
  • Flutter SDK (로컬 개발용)
  • Go (로컬 백엔드 개발용)

환경 설정 (Environment Setup)

  1. 예제 환경 설정 파일을 복사합니다.
    cp .env.sample .env
    
  2. 중요: .env 파일을 열어 Descope Project ID를 입력해야 합니다.
    DESCOPE_PROJECT_ID=P2t...
    

전체 스택 실행 (Running the Stack)

1. 인프라 실행 (데이터베이스)

데이터 레이어를 먼저 실행합니다.

docker compose -f compose.infra.yaml up -d

2. 애플리케이션 실행

Frontend와 Backend 서비스를 실행합니다.

docker compose up

로컬 개발 (Manual)

Docker 없이 코드를 수정하며 개발하려면:

Backend:

cd backend
go mod tidy
go run cmd/server/main.go

Frontend:

cd frontend
flutter pub get
flutter run -d chrome

📂 프로젝트 구조 (Project Structure)

baron_sso/
├── backend/            # Go Fiber 애플리케이션
│   ├── cmd/server/     # 진입점 (Entry point)
│   ├── internal/       # 도메인, 핸들러, 저장소(Repository)
│   └── Dockerfile
├── frontend/           # Flutter 애플리케이션
│   ├── lib/            # UI 및 로직
│   └── pubspec.yaml
├── compose.infra.yaml  # DB 서비스 (Postgres, ClickHouse)
├── docker-compose.yaml # 앱 서비스 (Front, Back)
├── .env.sample         # 환경 설정 템플릿
└── README.md           # 본 파일

📝 상태 및 로드맵 (Status & Roadmap)

  • Phase 1: 초기 설정 및 아키텍처 설계 (완료)
  • Phase 2: Backend Audit API 구현 (완료)
  • Phase 3: Frontend 로그인 UI 및 Descope 인증 로직 (완료)
  • Phase 4: Frontend - Backend 연동 (Audit 전송) (예정)
  • Phase 5: 대시보드 및 통합 런처 구현 (예정)