MemeXtar 크립토 크리에이터 플랫폼의 전체 프로젝트 리포지토리입니다. FrontEnd(React), BackEnd(Express), Database(MongoDB)로 구성되어 있으며, Minikube를 통한 로컬 쿠버네티스 배포를 지원합니다.
.
├── BackEnd/ # Express API 서버
├── FrontEnd/ # React + Vite 웹 애플리케이션
├── Database/ # MongoDB K8s 설정
├── k8s/ # Kubernetes Manifests (Backend, Frontend)
└── deploy-minikube.sh # 통합 배포 스크립트
이 프로젝트는 Git Submodule을 사용하여 FrontEnd와 BackEnd를 관리합니다.
처음 프로젝트를 다운로드할 때 반드시 --recursive 옵션을 사용해야 합니다.
# 1. 프로젝트 클론 (하위 모듈 포함)
git clone --recursive https://github.com/MemeXtar/infra.git memeX
# 2. 프로젝트 이동
cd memeX
# (참고) 만약 --recursive 없이 클론했다면 아래 명령어로 하위 모듈을 가져올 수 있습니다.
# git submodule update --init --recursive프로젝트를 최신 상태로 업데이트할 때, 하위 모듈(Submodule)도 함께 업데이트해야 합니다.
# 방법 1: 한 번에 업데이트 (권장)
git pull --recurse-submodules
# 방법 2: 수동 업데이트
git pull
git submodule update --remote --mergebrew install minikube 로 minikube를 설치해야 합니다.
이 프로젝트는 deploy-minikube.sh 스크립트를 통해 로컬 Minikube 환경에 쉽게 배포할 수 있습니다.
- Docker Desktop (또는 Docker daemon)
- Minikube
- kubectl
1. 초기 설치 및 배포 (권장) 기존 클러스터를 초기화하고 새로 설치합니다.
./deploy-minikube.sh --reset2. 업데이트 배포 코드 변경 후 이미지를 다시 빌드하고 배포합니다.
./deploy-minikube.sh3. 빠른 재배포 (빌드 생략) 코드 변경 없이 설정만 변경했거나 단순 재시작이 필요한 경우, 빌드 과정을 생략하여 빠르게 배포합니다.
./deploy-minikube.sh --no-build배포가 완료되면 스크립트가 자동으로 포트 포워딩을 시작합니다.
- Frontend: http://localhost:30080
- Backend API: http://localhost:30080/api/health (Frontend가
/api요청을 Backend로 프록시)
- Backend URL:
k8s/frontend.yaml의BACKEND_URL환경 변수를 통해 Frontend가 바라보는 Backend 주소를 변경할 수 있습니다. - Ingress: 로컬 개발 편의성을 위해 Ingress 대신
kubectl port-forward방식을 사용합니다.