개인 포트폴리오 및 블로그를 위한 홈서버 구축 프로젝트입니다.
Mac Mini (Late 2012)를 활용해 Kubernetes (Minikube), Jenkins, Nginx, Cloudflare Tunnel을 구성했습니다.
이 프로젝트는 Husky를 사용해 코드 품질을 자동으로 검증합니다.
npm install 실행 시 자동으로 설치됩니다.
- commit-msg: Conventional Commits 형식 검증
- pre-push: 빌드 및 린트 검사 실행
type(scope): description
예시:
feat(auth): add user login functionality
fix(ui): resolve button alignment issue
docs: update README installation steps
허용된 타입: feat, fix, docs, style, refactor, perf, test, chore, ci, build
- 이미지 태그: Git 커밋 해시 기반 (예:
zion-next-app:abc1234) - 자동 배포: Jenkins가 커밋마다 새 버전으로 배포
- 롤백 지원: 이전 버전으로 즉시 복원 가능
# 특정 커밋으로 롤백
./scripts/rollback.sh <commit-hash>
# 예시
./scripts/rollback.sh abc1234GitHub Push
↓
Jenkins (Git Pull → Docker Build → kubectl apply)
↓
Minikube (Kubernetes Cluster)
↓
Nginx (Reverse Proxy)
↓
Cloudflare Tunnel
↓
https://zionlee.website
- Hardware: Mac Mini (Late 2012, i7, 16GB RAM)
- Container Orchestration: Kubernetes (Minikube)
- CI/CD: Jenkins
- Reverse Proxy: Nginx
- Networking: Cloudflare Tunnel (HTTPS → Localhost:443)
- Frontend: Next.js + Tailwind CSS
- Backend: (예정) NestJS + Redis
-
코드 푸시
- GitHub에 push → Jenkins Webhook 트리거
-
CI/CD
- Jenkins가 Git Pull
- Minikube 내 Docker 환경에서
docker build kubectl apply -f k8s/
-
서비스 배포
- Cloudflare Tunnel을 통해 외부 도메인 연결
- Terraform으로 IaC 구성
- Helm 차트 도입
- Observability (Prometheus + Grafana)
- Backend 서비스 추가 (NestJS + Redis)
This is a Next.js project bootstrapped with create-next-app.
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
