Skip to content

아키텍처

┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ GitHub │────→│ IDP Server │────→│ ArgoCD │
│ (OAuth + │ │ (Hono API) │ │ (GitOps) │
│ Webhook) │ └──────┬───────┘ └──────┬───────┘
└──────────────┘ │ │
│ ▼
┌──────────────┐ ┌──────┴───────┐ ┌──────────────┐
│ Build Service│────→│ PostgreSQL │ │ Kubernetes │
│ (GitHub │ │ (Drizzle) │ │ (Runtime) │
│ Actions) │ └──────────────┘ └──────────────┘
└──────────────┘
┌──────────────┐
│ ECR (AWS) │
│ (Container │
│ Registry) │
└──────────────┘
서비스역할연결 방식
GitHub OAuth사용자 인증 + 저장소 접근OAuth2 + App Installation
GitHub ActionsCI/CD 빌드 파이프라인Webhook 콜백
GitHub WebhookPush 이벤트 → 자동 배포Webhook
ArgoCDGitOps 배포 오케스트레이션REST API + Token
AWS ECR컨테이너 이미지 레지스트리Docker Push
Kubernetes애플리케이션 런타임ArgoCD 간접 관리
PostgreSQL데이터 영속화Drizzle ORM
방식트리거
WebVercelPush to main
ServerDocker → ECR → ArgoCD → K8sPush to apps/server/**
DBDocker Compose (개발용)수동
Terminal window
# GitHub
GITHUB_CLIENT_ID / GITHUB_CLIENT_SECRET
GITHUB_APP_ID / GITHUB_APP_PRIVATE_KEY
GITHUB_APP_SLUG
GITHUB_BUILD_SERVICE_REPO
GITHUB_WEBHOOK_SECRET
# ArgoCD
ARGOCD_HOST / ARGOCD_TOKEN
ARGOCD_REPO_URL / ARGOCD_TARGET_REVISION
ARGOCD_PROJECT / ARGOCD_DESTINATION_SERVER
# Infra
ECR_REGISTRY
JWT_SECRET / WEBHOOK_SECRET
DB_HOST / DB_PORT / DB_USER / DB_PASSWORD / DB_NAME