Files
BaronSSO/baron-sso/docs/baronsso_docker_container_roles.md

4.8 KiB

Baron SSO Docker 컨테이너 역할 요약

본 문서는 Docker Desktop 화면에 보이는 Baron SSO 관련 컨테이너가 각각 어떤 역할을 하는지 간략히 정리한 문서입니다.

1. 한눈에 보는 구조

  • baron_*: Baron SSO 애플리케이션 본체와 앱 전용 인프라
  • ory_*: Ory 기반 인증/인가 스택
  • *-migrate-*, init-rp-*, *_check, *_init: 초기화나 점검만 수행하고 끝나는 일회성 컨테이너

2. 앱/프론트/백엔드 계열

컨테이너 역할 비고
baron_gateway 외부 브라우저 진입용 Nginx 게이트웨이 5000:5000, 사용자 요청을 userfront 등 내부 서비스로 프록시
baron_backend Baron SSO 백엔드 API 서버 Go/Fiber 기반, PostgreSQL/ClickHouse/Redis/Ory와 연동
baron_userfront 사용자용 메인 UI Flutter 기반 사용자 화면
baron_adminfront 관리자용 웹 UI React/Vite 기반, 5173:5173
baron_devfront 개발자/클라이언트 설정용 웹 UI React/Vite 기반, 5174:5173
baron_orgfront 조직/시각화용 웹 UI React/Vite 기반, 5175:5175

3. Baron 앱 전용 인프라

컨테이너 역할 비고
baron_postgres Baron 앱 메인 데이터베이스 사용자/운영 데이터 저장, 호스트 포트는 5433:5432
baron_clickhouse Baron 앱 감사 로그/분석 저장소 대용량 이벤트/감사 로그 적재
baron_redis 캐시 및 빠른 상태 저장소 세션성 데이터, 캐시, 보조 상태 저장
infra_check-1 app stack 기동 전 인프라 존재 여부를 맞추는 더미 컨테이너 실제 서비스 로직 없음, compose 의존성 연결용

4. Ory 인증/인가 스택

컨테이너 역할 비고
ory_postgres Ory 전용 PostgreSQL Kratos/Hydra/Keto 메타데이터 저장
ory_clickhouse Ory/Oathkeeper 로그 저장소 접근 로그 및 보안 이벤트 적재
ory_kratos 사용자 인증/계정/셀프서비스 플로우 서버 로그인, 회원가입, 복구, 검증 등 담당
ory_hydra OAuth2/OIDC 서버 토큰 발급, client 관리, OIDC issuer 역할
ory_keto 권한 관계(authorization) 서버 relation tuple 기반 권한 모델 처리
ory_oathkeeper 인증 프록시/정책 집행 게이트 외부 요청을 규칙에 따라 인증/인가 후 내부 서비스로 전달
ory_vector Oathkeeper/Ory 로그 수집 파이프라인 로그를 가공해 ClickHouse로 전달

5. 마이그레이션/초기화/헬스체크 컨테이너

이 그룹은 계속 떠 있는 서버가 아니라, 시작 시 필요한 작업만 수행하고 종료되는 컨테이너입니다. Docker 화면에서 Exited (0)이면 보통 정상 완료로 보면 됩니다.

컨테이너 역할 비고
kratos-migrate-1 Kratos DB 스키마 마이그레이션 Ory Postgres 준비 후 실행
hydra-migrate-1 Hydra DB 스키마 마이그레이션 Ory Postgres 준비 후 실행
keto-migrate-1 Keto DB 스키마 마이그레이션 Ory Postgres 준비 후 실행
oathkeeper_logs_i... Oathkeeper 로그 디렉터리 초기화 로그 폴더 생성 및 권한 설정
ory_stack_check Ory 핵심 서비스 readiness 검사 Kratos/Hydra/Keto 준비 완료 확인
init-rp-1 Hydra OAuth client 자동 등록 adminfront, devfront, orgfront, oathkeeper-introspect 생성

6. 화면을 볼 때 해석 방법

  • 초록 점으로 계속 실행 중인 컨테이너: 실제 서비스를 제공하는 서버일 가능성이 큼
  • 시작 버튼 모양 또는 Exited (0) 상태 컨테이너: 초기화/마이그레이션/체크 작업이 끝난 것일 가능성이 큼
  • baron_gateway가 unhealthy이면 대개 뒤쪽 baron_userfront 또는 업스트림 서비스가 아직 준비되지 않았는지 먼저 확인하면 됨

7. 접속 기준 주소

  • 사용자 메인 진입: http://localhost:5000
  • 관리자 화면: http://localhost:5173
  • 개발자 화면: http://localhost:5174
  • 조직 화면: http://localhost:5175
  • Oathkeeper 프록시 포트: http://localhost:4457

8. 요약

이 Docker 화면은 크게 세 층으로 보면 됩니다.

  • Baron 앱 계층: baron_backend, baron_userfront, baron_adminfront, baron_devfront, baron_orgfront, baron_gateway
  • Baron/Ory 인프라 계층: baron_postgres, baron_clickhouse, baron_redis, ory_postgres, ory_clickhouse
  • 인증/인가 계층: ory_kratos, ory_hydra, ory_keto, ory_oathkeeper, ory_vector

즉, 사용자는 baron_gateway로 들어오고, 실제 인증은 Ory stack이 담당하며, Baron 앱은 그 위에서 비즈니스 기능과 관리 화면을 제공하는 구조입니다.