4.8 KiB
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 앱은 그 위에서 비즈니스 기능과 관리 화면을 제공하는 구조입니다.