AgentSkillsCN

arch-infra

配置基础设施与 Docker。在实现 Docker Compose、环境变量、设置、部署、LocalStack 以及 Temporal 服务器等相关功能时使用。

SKILL.md
--- frontmatter
name: arch-infra
description: 인프라 및 Docker 설정. Docker Compose, 환경 변수, Settings, 배포, LocalStack, Temporal 서버 관련 구현 시 사용.
argument-hint: [target] (예: docker, settings, env, deploy)
allowed-tools: Read, Grep, Bash, Write, Edit, Glob

Infrastructure Architecture Skill

Docker Compose 기반 Local-First 인프라 구현 가이드.

반드시 먼저 읽을 문서

  1. docs/architecture/04-infrastructure.md — 인프라 전체 설계
  2. docs/architecture/ARCHITECTURE.md — 프로젝트 구조

서비스 구성

서비스이미지포트용도
frontendVite dev server5173React SPA
backendFastAPI8000REST API
workerPythonTemporal Worker
temporaltemporalio/auto-setup7233Workflow 엔진
temporal-uitemporalio/ui8080Temporal 관리 UI
postgrespostgres:165432DB + pgvector
redisredis:76379캐시 + Rate Limit
localstacklocalstack/localstack4566S3 에뮬레이션

Settings 클래스 (pydantic-settings)

python
class Settings(BaseSettings):
    # Database
    DATABASE_URL: str
    # Redis
    REDIS_URL: str
    # Temporal
    TEMPORAL_ADDRESS: str = "temporal:7233"
    TEMPORAL_NAMESPACE: str = "default"
    # Auth
    JWT_SECRET: str
    JWT_ALGORITHM: str = "HS256"
    JWT_EXPIRE_HOURS: int = 24
    GOOGLE_CLIENT_ID: str
    GOOGLE_CLIENT_SECRET: str
    GITHUB_CLIENT_ID: str
    GITHUB_CLIENT_SECRET: str
    OAUTH_TOKEN_ENCRYPTION_KEY: str
    SESSION_SECRET: str
    FRONTEND_URL: str = "http://localhost:5173"
    # LLM
    OPENAI_API_KEY: str
    # Storage
    S3_ENDPOINT: str | None = None  # LocalStack용
    S3_BUCKET: str = "vantict-files"

    model_config = SettingsConfigDict(env_file=".env.local")

파일 배치

code
docker-compose.yml          — 로컬 개발 환경
docker-compose.prod.yml     — 프로덕션 오버라이드
.env.local                  — 로컬 환경 변수
.env.production             — 프로덕션 환경 변수
backend/Dockerfile          — Backend + Worker 이미지
frontend/Dockerfile         — Frontend 이미지
backend/app/core/config.py  — Settings 클래스
backend/app/core/database.py — DB 세션 관리
backend/app/core/temporal.py — Temporal 클라이언트
scripts/setup.sh            — 초기 설정

Local → Cloud 전환

로컬클라우드방법
PostgreSQLRDS AuroraDATABASE_URL 변경
RedisElastiCacheREDIS_URL 변경
LocalStackAWS S3S3_ENDPOINT 제거
Temporal localTemporal CloudTEMPORAL_ADDRESS 변경
Docker ComposeECS Fargatecopilot deploy

규칙

  • 환경 변수로만 설정 전환 (코드 수정 금지)
  • Secret은 .env 파일 또는 AWS Secrets Manager
  • pgvector 확장: CREATE EXTENSION IF NOT EXISTS vector;
  • 헬스체크: 모든 서비스에 healthcheck 설정