This commit is contained in:
102
README.md
Executable file
102
README.md
Executable file
@@ -0,0 +1,102 @@
|
||||
# Web Portal - Kubernetes 배포 가이드
|
||||
|
||||
## 📁 프로젝트 구조
|
||||
|
||||
```
|
||||
k8s-portal/
|
||||
├── backend/
|
||||
│ ├── main.py # FastAPI 백엔드 (전체 API)
|
||||
│ ├── requirements.txt
|
||||
│ └── Dockerfile
|
||||
├── frontend/
|
||||
│ ├── index.html # 싱글 페이지 앱 (SPA)
|
||||
│ ├── nginx.conf # Nginx 설정 (API 프록시 포함)
|
||||
│ └── Dockerfile
|
||||
├── k8s/
|
||||
│ ├── 01-namespace.yaml # web-portal 네임스페이스
|
||||
│ ├── 02-postgres.yaml # PostgreSQL + PVC + Service
|
||||
│ ├── 03-secrets.yaml # DB 패스워드, JWT 시크릿
|
||||
│ ├── 04-backend.yaml # FastAPI Deployment + Service
|
||||
│ └── 05-frontend.yaml # Nginx Deployment + NodePort(30080)
|
||||
├── build-and-deploy.sh # 원클릭 빌드 & 배포
|
||||
├── cleanup.sh # 전체 삭제
|
||||
└── README.md
|
||||
```
|
||||
|
||||
## 🚀 설치 및 실행
|
||||
|
||||
### 전제 조건
|
||||
- Docker Desktop 설치 및 실행
|
||||
- Docker Desktop > Settings > Kubernetes > Enable Kubernetes ✅
|
||||
|
||||
### 배포 (원클릭)
|
||||
```bash
|
||||
chmod +x build-and-deploy.sh
|
||||
./build-and-deploy.sh
|
||||
```
|
||||
|
||||
### 접속
|
||||
브라우저에서: **http://localhost:30080**
|
||||
|
||||
## 🔑 기본 계정
|
||||
|
||||
| 구분 | ID | Password |
|
||||
|------|-----|----------|
|
||||
| 관리자 | `admin` | `admin1234` |
|
||||
| 일반사용자 | `user1` | `user1234` |
|
||||
|
||||
## ✨ 기능 설명
|
||||
|
||||
### 일반 사용자
|
||||
- 로그인 후 **본인에게 할당된 웹페이지 목록** 확인
|
||||
- 카드 클릭 시 **새 탭에서 해당 URL로 이동**
|
||||
|
||||
### 관리자
|
||||
일반 사용자 기능 + 추가:
|
||||
- **페이지 관리**: 웹페이지 추가/수정/삭제
|
||||
- **사용자 관리**: 계정 생성/삭제
|
||||
- **권한 설정**: 사용자별 접근 가능 페이지 체크박스로 지정
|
||||
|
||||
## 🔧 운영 명령어
|
||||
|
||||
```bash
|
||||
# 전체 리소스 상태 확인
|
||||
kubectl get all -n web-portal
|
||||
|
||||
# 백엔드 로그 확인
|
||||
kubectl logs -n web-portal deployment/backend -f
|
||||
|
||||
# 프론트엔드 로그 확인
|
||||
kubectl logs -n web-portal deployment/frontend -f
|
||||
|
||||
# 재시작
|
||||
kubectl rollout restart deployment/backend -n web-portal
|
||||
kubectl rollout restart deployment/frontend -n web-portal
|
||||
|
||||
# 전체 삭제
|
||||
./cleanup.sh
|
||||
```
|
||||
|
||||
## 🔐 운영 시 보안 설정
|
||||
|
||||
`k8s/03-secrets.yaml`에서 반드시 변경:
|
||||
```yaml
|
||||
stringData:
|
||||
db-password: "강력한패스워드로변경" # PostgreSQL 패스워드
|
||||
jwt-secret: "64자이상의랜덤문자열로변경" # JWT 서명 키
|
||||
```
|
||||
|
||||
## 🏗️ 아키텍처
|
||||
|
||||
```
|
||||
브라우저
|
||||
│
|
||||
▼ :30080 (NodePort)
|
||||
[Nginx Frontend] ─── 정적 HTML/JS 제공
|
||||
│ /api/* 프록시
|
||||
▼
|
||||
[FastAPI Backend] ─── JWT 인증, REST API
|
||||
│
|
||||
▼
|
||||
[PostgreSQL] ─── 사용자, 페이지, 권한 데이터
|
||||
```
|
||||
Reference in New Issue
Block a user