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:
107
docs/deployment.md
Normal file
107
docs/deployment.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# TK 안전관리 - 배포 가이드
|
||||
|
||||
## 사전 요구사항
|
||||
|
||||
맥미니 서버 (192.168.1.122)에 다음 서비스가 실행 중이어야 합니다:
|
||||
- Ollama (qwen3.5:35b-a3b) — port 11434
|
||||
- Qdrant — port 6333
|
||||
- Apache Tika — port 9998
|
||||
- Docker Desktop
|
||||
|
||||
조립컴 (192.168.1.186 / Tailscale 100.111.160.84):
|
||||
- Ollama (bge-m3) — port 11434
|
||||
|
||||
## 빠른 시작
|
||||
|
||||
### 1. 환경변수 설정
|
||||
```bash
|
||||
cd ~/docker/tk-safety
|
||||
cp .env.example .env
|
||||
# .env 파일에서 ADMIN_PASSWORD, SESSION_SECRET 변경
|
||||
```
|
||||
|
||||
### 2. Docker 빌드 및 실행
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### 3. DB 마이그레이션
|
||||
```bash
|
||||
# 로컬에서 마이그레이션 생성
|
||||
npx drizzle-kit generate
|
||||
|
||||
# 마이그레이션 적용
|
||||
npx drizzle-kit push
|
||||
```
|
||||
|
||||
또는 DB URL을 직접 지정:
|
||||
```bash
|
||||
DATABASE_URL=postgres://tksafety:tksafety_password@localhost:5433/tksafety npx drizzle-kit push
|
||||
```
|
||||
|
||||
### 4. 접속 확인
|
||||
- http://192.168.1.122:3100
|
||||
- 설정한 비밀번호로 로그인
|
||||
|
||||
## 환경변수
|
||||
|
||||
| 변수 | 설명 | 기본값 |
|
||||
|------|------|--------|
|
||||
| DATABASE_URL | PostgreSQL 연결 문자열 | (필수) |
|
||||
| ADMIN_PASSWORD | 로그인 비밀번호 | changeme |
|
||||
| SESSION_SECRET | 세션 서명 키 (32자 이상) | (필수) |
|
||||
| OLLAMA_BASE_URL | Ollama 생성 AI URL | http://host.docker.internal:11434 |
|
||||
| OLLAMA_MODEL | 생성 모델명 | qwen3.5:35b-a3b |
|
||||
| EMBEDDING_BASE_URL | 임베딩 서버 URL | http://100.111.160.84:11434 |
|
||||
| EMBEDDING_MODEL | 임베딩 모델명 | bge-m3 |
|
||||
| QDRANT_URL | Qdrant URL | http://host.docker.internal:6333 |
|
||||
| QDRANT_COLLECTION | Qdrant 컬렉션명 | safety-docs |
|
||||
| TIKA_URL | Tika URL | http://host.docker.internal:9998 |
|
||||
|
||||
## 업데이트
|
||||
|
||||
```bash
|
||||
cd ~/docker/tk-safety
|
||||
git pull
|
||||
docker-compose up -d --build
|
||||
```
|
||||
|
||||
## 데이터 백업
|
||||
|
||||
### PostgreSQL
|
||||
```bash
|
||||
docker exec tk-safety-db pg_dump -U tksafety tksafety > backup.sql
|
||||
```
|
||||
|
||||
### 복원
|
||||
```bash
|
||||
docker exec -i tk-safety-db psql -U tksafety tksafety < backup.sql
|
||||
```
|
||||
|
||||
### 업로드 파일
|
||||
`~/docker/tk-safety/uploads/` 디렉토리를 백업하세요.
|
||||
|
||||
## 트러블슈팅
|
||||
|
||||
### DB 연결 실패
|
||||
```bash
|
||||
# DB 컨테이너 상태 확인
|
||||
docker logs tk-safety-db
|
||||
|
||||
# DB 직접 접속
|
||||
docker exec -it tk-safety-db psql -U tksafety tksafety
|
||||
```
|
||||
|
||||
### AI 서비스 연결 실패
|
||||
설정 페이지 (Settings)에서 서비스 연결 상태를 확인하세요.
|
||||
- Ollama: `curl http://localhost:11434/api/tags`
|
||||
- Qdrant: `curl http://localhost:6333/collections`
|
||||
- Tika: `curl http://localhost:9998/tika`
|
||||
|
||||
### 빌드 실패
|
||||
```bash
|
||||
# 캐시 정리 후 재빌드
|
||||
docker-compose down
|
||||
docker-compose build --no-cache
|
||||
docker-compose up -d
|
||||
```
|
||||
Reference in New Issue
Block a user