Skip to content

HelloJamong/customer-vault

Repository files navigation

고객창고 (Customer Vault)

내부 고객사 관리 및 유지보수 점검 이력 관리를 위한 웹 기반 시스템

📖 프로젝트 소개

고객창고는 고객사 정보와 유지보수 점검 이력을 효율적으로 관리하기 위한 웹 애플리케이션입니다. Docker 기반으로 손쉽게 배포하고 운영할 수 있도록 설계되었습니다.

🖼️ Preview

Preview

🛠️ 기술 스택

Backend

NestJS TypeScript Swagger JWT

Database

MariaDB Prisma

Frontend

React Vite MUI React Query Zustand React Hook Form Day.js ExcelJS

Build/Deploy

Docker Docker Compose

오프라인 환경 지원

이 프로젝트는 폐쇄망(오프라인) 환경에서도 정상 작동하도록 설계되었습니다:

  • 외부 CDN 제거: 모든 리소스가 로컬에서 제공됨
  • 외부 폰트 의존성 제거: 시스템 기본 폰트 사용
  • Content Security Policy: Nginx에서 외부 리소스 차단 정책 적용
  • 완전한 자체 포함: 인터넷 연결 없이 모든 기능 사용 가능

🚀 빠른 시작

Git 클론 없이 배포 파일 두 개만 받아 바로 실행할 수 있습니다.

1️⃣ 배포 파일 다운로드

# 배포 디렉토리 생성
mkdir customer-vault && cd customer-vault

# 최신 릴리즈 배포 파일 자동 다운로드
curl -LO https://github.com/HelloJamong/customer-vault/releases/latest/download/docker-compose.yml
curl -LO https://github.com/HelloJamong/customer-vault/releases/latest/download/.env.example

2️⃣ 환경 변수 설정

cp .env.example .env
vi .env

운영 환경에서 반드시 변경해야 할 항목:

항목 설명
NODE_ENV production 으로 변경
JWT_SECRET 128자 이상 랜덤 문자열 (아래 생성 명령 참고)
DB_ROOT_PASSWORD 강력한 DB root 비밀번호
DB_PASSWORD 강력한 DB 사용자 비밀번호
CORS_ORIGIN 실제 접속 도메인 또는 IP (예: http://10.0.0.5:3003)
VERSION 다운로드한 버전과 동일하게 설정 (예: 26.03.03)
# JWT_SECRET 생성
node -e "console.log(require('crypto').randomBytes(64).toString('hex'))"

3️⃣ 서비스 실행

docker compose pull
docker compose up -d

4️⃣ 접속 정보

최초 로그인 계정:

  • ID: admin
  • PW: 1111

⚠️ 최초 로그인 후 반드시 비밀번호를 변경하세요.


🔄 업그레이드

# 최신 docker-compose.yml 다운로드
curl -LO https://github.com/HelloJamong/customer-vault/releases/latest/download/docker-compose.yml

# .env의 VERSION을 최신 버전으로 업데이트 (Releases 페이지에서 확인)
vi .env

# 이미지 pull 및 재시작
docker compose pull
docker compose up -d

🏗️ 프로젝트 구조

customer-vault/
├── backend/                      # Backend 소스 (Docker 이미지로 빌드됨)
├── frontend/                     # Frontend 소스 (Docker 이미지로 빌드됨)
│
├── proxy/                        # Nginx 리버스 프록시 설정
│   └── nginx.conf                # Nginx 설정 파일
│
├── docs/                         # 운영/구성 가이드 문서
│   └── nginx.conf.example        # 외부 Nginx 설정 예시
│
├── data/                         # MariaDB 데이터 볼륨 (영구 저장)
├── uploads/                      # 업로드된 점검서 파일 저장소 (영구 저장)
├── logs/                         # 애플리케이션 로그 파일 (영구 저장)
│
├── docker-compose.yml            # Docker Compose 설정 파일
├── .env                          # 환경 변수 설정
└── .env.example                  # 환경 변수 샘플

주요 디렉토리 설명:

  • proxy/: Nginx 컨테이너에서 사용하는 리버스 프록시 설정
  • data/: MariaDB 데이터베이스 파일이 저장되는 볼륨 (백업 필수)
  • uploads/: 사용자가 업로드한 점검서 파일이 저장됨 (백업 필수)
  • logs/: 애플리케이션 로그 파일 (문제 발생 시 확인)

📚 추가 가이드

About

내가 쓸려고 만든 고객 관리용 웹페이지

Resources

License

Stars

Watchers

Forks

Contributors