소형 건설업체(100억 미만)를 위한 AI 기반 토목공사 통합관리 플랫폼 Backend (FastAPI): - SQLAlchemy 모델 13개 (users, projects, wbs, tasks, daily_reports, reports, inspections, quality, weather, permits, rag, settings) - API 라우터 11개 (auth, projects, tasks, daily_reports, reports, inspections, weather, rag, kakao, permits, settings) - Services: Claude AI 래퍼, CPM Gantt 계산, 기상청 API, RAG(pgvector), 카카오 Skill API - Alembic 마이그레이션 (pgvector 포함) - pytest 테스트 (CPM, 날씨 경보) Frontend (Next.js 15): - 11개 페이지 (대시보드, 프로젝트, Gantt, 일보, 검측, 품질, 날씨, 인허가, RAG, 설정) - TanStack Query + Zustand + Tailwind CSS 인프라: - Docker Compose (PostgreSQL pgvector + backend + frontend) - 한국어 README 및 설치 가이드 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
78 lines
3.0 KiB
Plaintext
78 lines
3.0 KiB
Plaintext
# =====================================================
|
|
# CONAI 환경변수 설정 파일
|
|
# =====================================================
|
|
# 이 파일을 .env 로 복사한 후 실제 값을 입력하세요:
|
|
# cp .env.example .env
|
|
#
|
|
# ⚠️ .env 파일은 절대 GitHub에 올리지 마세요!
|
|
# .gitignore에 이미 포함되어 있습니다.
|
|
# =====================================================
|
|
|
|
# -----------------------------------------------
|
|
# [필수] 앱 보안 키
|
|
# 아래 명령으로 랜덤 키를 생성하세요:
|
|
# python -c "import secrets; print(secrets.token_hex(32))"
|
|
# -----------------------------------------------
|
|
SECRET_KEY=여기에-랜덤-키-입력-필수
|
|
|
|
# 개발 중에는 true, 운영에서는 반드시 false
|
|
DEBUG=true
|
|
|
|
# -----------------------------------------------
|
|
# [필수] Supabase 데이터베이스
|
|
# https://supabase.com 에서 프로젝트 생성 후 복사
|
|
# Settings → Database → Connection string
|
|
# -----------------------------------------------
|
|
DATABASE_URL=postgresql+asyncpg://postgres:비밀번호@db.프로젝트ID.supabase.co:5432/postgres
|
|
DATABASE_URL_SYNC=postgresql://postgres:비밀번호@db.프로젝트ID.supabase.co:5432/postgres
|
|
|
|
SUPABASE_URL=https://프로젝트ID.supabase.co
|
|
SUPABASE_ANON_KEY=여기에-anon-key-입력
|
|
SUPABASE_SERVICE_KEY=여기에-service-role-key-입력
|
|
SUPABASE_STORAGE_BUCKET=conai-documents
|
|
|
|
# -----------------------------------------------
|
|
# [필수] Claude AI (Anthropic)
|
|
# https://console.anthropic.com 에서 발급
|
|
# -----------------------------------------------
|
|
ANTHROPIC_API_KEY=sk-ant-여기에입력
|
|
CLAUDE_MODEL=claude-sonnet-4-5
|
|
|
|
# -----------------------------------------------
|
|
# [필수] 기상청 Open API (무료)
|
|
# https://www.data.go.kr 에서 회원가입 후 발급
|
|
# "기상청_단기예보 조회서비스" 검색하여 활용신청
|
|
# -----------------------------------------------
|
|
KMA_API_KEY=여기에입력
|
|
|
|
# -----------------------------------------------
|
|
# [필수] 법규 Q&A 임베딩 - 둘 중 하나 선택
|
|
# Voyage AI (추천): https://www.voyageai.com
|
|
# OpenAI: https://platform.openai.com
|
|
# -----------------------------------------------
|
|
VOYAGE_API_KEY=pa-여기에입력
|
|
# OPENAI_API_KEY=sk-여기에입력
|
|
|
|
# -----------------------------------------------
|
|
# [선택] 카카오 챗봇
|
|
# https://i.kakao.com 에서 챗봇 생성 후 발급
|
|
# 없으면 웹 대시보드만 사용 가능 (기능 제한 없음)
|
|
# -----------------------------------------------
|
|
KAKAO_APP_KEY=
|
|
KAKAO_ADMIN_KEY=
|
|
KAKAO_CHANNEL_ID=
|
|
|
|
# -----------------------------------------------
|
|
# [선택] AWS S3 (파일 저장)
|
|
# Supabase Storage 사용 시 불필요
|
|
# -----------------------------------------------
|
|
# AWS_ACCESS_KEY_ID=
|
|
# AWS_SECRET_ACCESS_KEY=
|
|
# AWS_REGION=ap-northeast-2
|
|
# S3_BUCKET=conai-files
|
|
|
|
# -----------------------------------------------
|
|
# CORS 허용 주소 (프론트엔드 URL)
|
|
# -----------------------------------------------
|
|
CORS_ORIGINS=["http://localhost:3000"]
|