Files
safe-project/docs/deployment.md
Hyungi Ahn 2a9968fa7f 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>
2026-03-03 12:33:55 +09:00

2.5 KiB

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. 환경변수 설정

cd ~/docker/tk-safety
cp .env.example .env
# .env 파일에서 ADMIN_PASSWORD, SESSION_SECRET 변경

2. Docker 빌드 및 실행

docker-compose up -d

3. DB 마이그레이션

# 로컬에서 마이그레이션 생성
npx drizzle-kit generate

# 마이그레이션 적용
npx drizzle-kit push

또는 DB URL을 직접 지정:

DATABASE_URL=postgres://tksafety:tksafety_password@localhost:5433/tksafety npx drizzle-kit push

4. 접속 확인

환경변수

변수 설명 기본값
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

업데이트

cd ~/docker/tk-safety
git pull
docker-compose up -d --build

데이터 백업

PostgreSQL

docker exec tk-safety-db pg_dump -U tksafety tksafety > backup.sql

복원

docker exec -i tk-safety-db psql -U tksafety tksafety < backup.sql

업로드 파일

~/docker/tk-safety/uploads/ 디렉토리를 백업하세요.

트러블슈팅

DB 연결 실패

# 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

빌드 실패

# 캐시 정리 후 재빌드
docker-compose down
docker-compose build --no-cache
docker-compose up -d