feat: TK 안전관리 플랫폼 초기 구현
위험성평가, 안전 RAG Q&A, 안전점검 체크리스트를 통합한 안전관리자 전용 웹 플랫폼 전체 구현. - Next.js 15 (App Router) + TypeScript + Tailwind + shadcn/ui - Drizzle ORM + PostgreSQL 16 (12개 테이블) - 위험성평가 CRUD + 5x5 위험성 매트릭스 + 인쇄 내보내기 - 체크리스트 템플릿/점검/NCR 추적 - RAG 문서 파이프라인 (Tika + bge-m3 + Qdrant) - SSE 스트리밍 RAG 채팅 (qwen3.5:35b-a3b) - AI 어시스트 (위험요인 추천, 감소대책, 점검항목 생성) - 대시보드 통계/차트 (recharts) - 단일 사용자 인증 (HMAC 쿠키 세션) - 다크모드 지원 - Docker 멀티스테이지 빌드 (standalone) - 프로젝트 가이드 문서 (docs/) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
46
docker-compose.yml
Normal file
46
docker-compose.yml
Normal file
@@ -0,0 +1,46 @@
|
||||
services:
|
||||
app:
|
||||
build: .
|
||||
container_name: tk-safety
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3100:3000"
|
||||
environment:
|
||||
- DATABASE_URL=postgres://tksafety:tksafety_password@db:5432/tksafety
|
||||
- ADMIN_PASSWORD=${ADMIN_PASSWORD:-changeme}
|
||||
- SESSION_SECRET=${SESSION_SECRET:-tk-safety-session-secret-change-me}
|
||||
- OLLAMA_BASE_URL=http://host.docker.internal:11434
|
||||
- OLLAMA_MODEL=qwen3.5:35b-a3b
|
||||
- EMBEDDING_BASE_URL=http://100.111.160.84:11434
|
||||
- EMBEDDING_MODEL=bge-m3
|
||||
- QDRANT_URL=http://host.docker.internal:6333
|
||||
- QDRANT_COLLECTION=safety-docs
|
||||
- TIKA_URL=http://host.docker.internal:9998
|
||||
volumes:
|
||||
- ./uploads:/app/uploads
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
|
||||
db:
|
||||
image: postgres:16-alpine
|
||||
container_name: tk-safety-db
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "127.0.0.1:5433:5432"
|
||||
environment:
|
||||
- POSTGRES_USER=tksafety
|
||||
- POSTGRES_PASSWORD=tksafety_password
|
||||
- POSTGRES_DB=tksafety
|
||||
volumes:
|
||||
- pgdata:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U tksafety"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
volumes:
|
||||
pgdata:
|
||||
Reference in New Issue
Block a user