diff --git a/README.md b/README.md index b7cea4a..ab9b429 100644 --- a/README.md +++ b/README.md @@ -1,60 +1,39 @@ # Nginx Deploy - Robeing Project -GitOps 방식으로 관리되는 Robeing 프로젝트의 배포 매니페스트 저장소입니다. +Ubuntu 서버용 Nginx 리버스 프록시 배포 저장소입니다. ## 구조 ``` nginx-deploy/ -├── .github/workflows/deploy.yml # GitHub Actions CI/CD -├── nginx/ -│ ├── nginx.conf # Nginx 설정 -│ └── Dockerfile # Nginx 컨테이너 빌드 -└── docker-compose.yml # 전체 서비스 정의 +├── .github/workflows/deploy.yml # GitHub Actions 배포 스크립트 +├── default.conf # Nginx 설정 파일 +├── docker-compose.yml # Docker Compose 정의 +└── README.md # 이 파일 ``` ## 배포 플로우 -1. **애플리케이션 저장소**에서 코드 변경 시 -2. **GitHub Actions**가 새 이미지 빌드 후 Docker Hub에 push -3. **Webhook**으로 이 저장소의 `docker-compose.yml` 업데이트 -4. **수동 또는 자동**으로 서버에 배포 +1. **main 브랜치에 push** +2. **GitHub Actions** 자동 실행 +3. **SCP로 파일 전송** (Ubuntu 서버 ~/robeing-nginx) +4. **Docker Compose** 자동 재시작 -## 설정 +## 서버 설정 ### GitHub Secrets 설정 ``` -DOCKER_USERNAME: Docker Hub 사용자명 -DOCKER_PASSWORD: Docker Hub 패스워드 또는 토큰 +NAS_HOST: 124.55.18.179 +NAS_PORT: 51123 +NAS_USER: admin +NAS_SSH_KEY_ADMIN: SSH 개인키 ``` -### 환경 변수 설정 -```bash -# .env 파일 생성 -DATABASE_URL=postgresql://user:password@postgres:5432/robeing -REDIS_URL=redis://redis:6379/0 -POSTGRES_USER=robeing -POSTGRES_PASSWORD=your-secure-password -``` - -## 배포 방법 - -### 개발 환경 -```bash -docker-compose up -d -``` - -### 프로덕션 배포 -```bash -# 환경 변수 설정 후 -docker-compose -f docker-compose.yml up -d -``` - -## 서비스 구성 - -- **nginx**: 리버스 프록시 (포트 80, 443) -- **frontend/backend**: 통합 서버 (포트 18000) -- **api_base**: API 서버 (포트 8001) +### 서버 요구사항 +- Ubuntu 22.04 LTS +- Docker & Docker Compose 설치 +- admin 사용자 sudo 권한 (NOPASSWD) +- 포트 80, 443 오픈 ## 프록시 라우팅 @@ -62,10 +41,30 @@ docker-compose -f docker-compose.yml up -d - `https://ro-being.com/api/` → 192.168.219.45:18000 (frontend/backend) - `https://ro-being.com/rb8001/` → 192.168.219.45:8001 (api_base) -## Health Check +## SSL 설정 -모든 서비스는 health check가 설정되어 있으며, `/health` 엔드포인트로 상태 확인 가능합니다. +Let's Encrypt를 통한 자동 SSL 인증서 발급: +- HTTP(80) → HTTPS(443) 자동 리다이렉트 +- 도메인: ro-being.com +- 자동 갱신 설정 + +## 로컬 테스트 ```bash -curl http://localhost/health +# 서버에서 직접 실행 +cd ~/robeing-nginx +docker compose up -d + +# 로그 확인 +docker compose logs -f nginx +``` + +## 배포 상태 확인 + +```bash +# 서비스 상태 확인 +curl -I https://ro-being.com + +# 컨테이너 상태 확인 +docker compose ps ``` \ No newline at end of file