# [B104] Aucation

Aucation 프로젝트는 Docker, Docker Compose, 그리고 Jenkins Pipeline을 활용한
CI/CD 자동화 환경을 구성하고 있습니다.

Gitlab의 Webhook 설정으로 인해 back / front branch에 나누어 구분하였고
Merge 이벤트 발생 시, Jenkins Pipeline을 통해 자동 빌드와 배포가 이루어집니다.

프론트엔드 부분은 npm 환경에서 빌드하고 배포합니다.
백엔드는 Gradle을 사용하여 빌드하며, Docker Compose를 통해 컨테이너를 관리하고 배포합니다.

## Version

### Frontend

| Type             | Version |
| ---------------- | ------- |
| next.js          |16.18.50 |
| React.js         | 18.2.21 |
| Axios            |  1.5.0  |

### Backend

| Type              | Version           |
| ----------------- | -------------     |
| Java              | openjdk : 11.0.20 |
| Spring Boot       | 2.7.17            |
| Gradle            | 8.3.0             |
| Spring Security   | 5.7.11            |
| JPA               | 2.2.3             |
| Hibernate         | 5.6.15            |
| IntelliJ Ultimate | -                 |
| JWT               | 4.2.1             |
| sockjs            | 1.1.2             |
| websocket         | 2.3.3-1           |
| FCM               | 9.1.1             |
| QueryDsl          | 5.0.0             |
| lombok            | 1.18.30           |
### Database

| Type            | Version  |
| --------------- | ---------|
| MySQL           | 8.0.32   |
| MySQL Workbench | 8.0 CE   |
| Redis           | 7.2.2    |
| AWS-S3          | 1.12.385 | 
## ufw allow status

| Port   | Content     |
| ------ | ----------- |
| 22     | SSH         |
| 80     | HTTP        |
| 443    | HTTPS       |
| 3306   | MySQL       |

1. EC2 Setting

1-1. Docker

1-2. nginx

<aside> 💡 sudo ln -s /etc/nginx/sites-available/nginx.conf /etc/nginx/sites-enabled

1-3. SSL 인증서

  1. let’s Encrypt 설치
$ sudo apt-get install letsencrypt
  1. Cerbot 설치
$ sudo apt-get install certbot python3-certbot-nginx