Skip to content

배포 및 서버 관리

사전 요구사항

소프트웨어최소 버전
Docker24.0+
Docker Compose2.20+
Node.js20+
pnpm9+
Git2.30+

초기 설치

1단계: 소스 코드 받기

bash
git clone <repository-url> hereby-dhub
cd hereby-dhub

2단계: 환경 변수 설정

bash
cp .env.example .env

.env 파일을 편집하여 환경에 맞게 설정합니다:

bash
# 데이터베이스 (반드시 변경)
DB_PASSWORD=your-secure-password-here

# JWT (반드시 변경)
JWT_SECRET=your-jwt-secret-key

# API
API_PORT=3000

# 타임존
TZ=Asia/Seoul

보안 주의

.env 파일의 DB_PASSWORDJWT_SECRET은 반드시 안전한 값으로 변경하세요. 기본값을 프로덕션에서 사용하지 마세요.

3단계: 전체 설치

bash
make setup

이 명령은 다음을 순서대로 수행합니다:

  1. pnpm install — 의존성 설치
  2. Docker 컨테이너 시작 (PostgreSQL, Redis, pgAdmin)
  3. 데이터베이스 마이그레이션 실행
  4. 시드 데이터 입력

4단계: 서비스 시작

bash
make dev

서비스 업데이트

코드 업데이트

bash
# 1. 최신 코드 받기
git pull origin main

# 2. 의존성 업데이트
pnpm install

# 3. 빌드
pnpm build

# 4. 마이그레이션 실행 (필요한 경우)
make db-migrate

# 5. 서비스 재시작
make dev

Docker 컨테이너 관리

bash
# 컨테이너 상태 확인
docker-compose ps

# 컨테이너 시작
make db-start

# 컨테이너 중지
make db-stop

# 컨테이너 재시작
make db-restart

# 컨테이너 로그 확인
make db-logs

# 특정 서비스 로그
docker-compose logs -f postgres
docker-compose logs -f redis

문서 사이트 배포

Docker로 문서 사이트 배포

bash
# 문서 Docker 이미지 빌드 및 실행
make docs-docker

이 명령은 다음을 수행합니다:

  1. VitePress로 문서 사이트 빌드
  2. nginx 기반 Docker 컨테이너로 서빙
  3. http://localhost:4001에서 접속 가능

버전별 빌드

bash
# 멀티버전 빌드 (태그 기반)
bash scripts/docs-build.sh

프로덕션 배포 체크리스트

  • [ ] .env 파일의 시크릿 값 변경 확인
  • [ ] NODE_ENV=production 설정
  • [ ] SSL/TLS 인증서 설정
  • [ ] 방화벽 규칙 설정 (필요한 포트만 개방)
  • [ ] 데이터베이스 백업 스케줄 설정
  • [ ] 로그 로테이션 설정
  • [ ] 모니터링 도구 연결