Skip to content

BAMBOO-Hompage/bamboo-server

Repository files navigation

πŸŽ‹ BAMBOO | 상λͺ…λŒ€ AI 동아리 관리 ν™ˆνŽ˜μ΄μ§€

BAMBOOλŠ” 상λͺ…λŒ€ν•™κ΅ νœ΄λ¨Όμ§€λŠ₯μ •λ³΄κ³΅ν•™κ³Όμ˜ AI ν•™μˆ  λ™μ•„λ¦¬μž…λ‹ˆλ‹€.

BAMBOOλŠ” 동아리 μ†Œκ°œλΏλ§Œ μ•„λ‹ˆλΌ, μ›ν™œν•œ 동아리 운영 및 μŠ€ν„°λ”” 관리λ₯Ό μœ„ν•΄ 자체 개발된 μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.

AI에 관심 μžˆλŠ” 학생듀이 ν•¨κ»˜ ν•™μŠ΅ν•˜κ³  연ꡬ할 수 μžˆλ„λ‘ 체계적인 관리 ν™˜κ²½μ„ μ œκ³΅ν•©λ‹ˆλ‹€.


πŸ”₯ Team

πŸŒƒ BE Developer

κΉ€μž¬κ΄€ κΉ€ν¬μž¬


🏦 Architecture

graph TB
    subgraph "Client"
        Browser[🌐 Browser]
    end
    
    subgraph "Cloudflare CDN"
        CF[☁️ Cloudflare<br/>DNS + SSL + CDN]
    end
    
    subgraph "Frontend - S3"
        S3[πŸ“¦ S3 Static Hosting<br/>smu-bamboo.uk]
    end
    
    subgraph "Backend - EC2"
        Nginx[πŸ”’ Nginx<br/>Reverse Proxy<br/>SSL/TLS]
        Docker[🐳 Docker Container<br/>Spring Boot:8080]
    end
    
    subgraph "Database"
        RDS[(πŸ—„οΈ AWS RDS<br/>MySQL 8.0)]
        Redis[(πŸ”΄ Redis<br/>Cache)]
    end
    
    subgraph "Storage"
        S3Storage[πŸ“ S3<br/>File Storage]
    end
    
    subgraph "CI/CD"
        GH[βš™οΈ GitHub Actions]
        DH[🐳 Docker Hub<br/>jinseok19/bamboo-server]
    end
    
    Browser -->|HTTPS| CF
    CF -->|HTTPS| S3
    CF -->|HTTPS| Nginx
    Nginx -->|HTTP| Docker
    Docker --> RDS
    Docker --> Redis
    Docker --> S3Storage
    
    GH -->|Build & Push| DH
    DH -->|Pull Image| Docker
    
    style CF fill:#f9a825
    style Docker fill:#0db7ed
    style S3 fill:#569A31
    style RDS fill:#527FFF
    style Redis fill:#DC382D
Loading

도메인: https://smu-bamboo.uk (Frontend) | https://api.smu-bamboo.uk (Backend)


πŸ›‘ Version

Java - 21

Spring Boot - 3.4.1

Gradle - 8.12

MySQL - 8.0

Redis - 7


πŸ’» 둜컬 ν™˜κ²½ μ„ΈνŒ…

πŸ“‹ 사전 μ€€λΉ„

  1. Java 21 μ„€μΉ˜ 확인

    java -version
    # java version "21.x.x" 확인
  2. Docker Desktop μ„€μΉ˜

    docker --version
    docker ps

πŸš€ μ‹€ν–‰ 방법

1단계: ν™˜κ²½ λ³€μˆ˜ μ„€μ •

# env.template νŒŒμΌμ„ .env둜 볡사
copy env.template .env

# .env νŒŒμΌμ„ μ—΄μ–΄ ν•„μš”ν•œ κ°’ μˆ˜μ • (λŒ€λΆ€λΆ„ κΈ°λ³Έκ°’μœΌλ‘œ μ‚¬μš© κ°€λŠ₯)

2단계: Docker μ»¨ν…Œμ΄λ„ˆ μ‹œμž‘

# MySQL, Redis, Grafana, Prometheus μ‹€ν–‰
docker-compose up -d

# μ»¨ν…Œμ΄λ„ˆ μƒνƒœ 확인 (healthy 확인)
docker-compose ps

3단계: ν”„λ‘œμ νŠΈ λΉŒλ“œ 및 μ‹€ν–‰

# λΉŒλ“œ (ν…ŒμŠ€νŠΈ μ œμ™Έ)
gradlew.bat clean build -x test

# μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰
gradlew.bat bootRun

4단계: 확인

πŸ› οΈ μœ μš©ν•œ λͺ…λ Ήμ–΄

# Docker μ»¨ν…Œμ΄λ„ˆ 관리
docker-compose start    # μ‹œμž‘
docker-compose stop     # 쀑지
docker-compose restart  # μž¬μ‹œμž‘
docker-compose down     # 쀑지 및 μ‚­μ œ
docker-compose logs -f  # 둜그 확인

# MySQL 접속
docker exec -it bamboo-mysql mysql -u bamboo_user -p
# λΉ„λ°€λ²ˆν˜Έ: bamboo_password

# Redis 접속
docker exec -it bamboo-redis redis-cli

πŸ› 문제 ν•΄κ²°

포트 좩돌 μ‹œ:

netstat -ano | findstr :8080
netstat -ano | findstr :3306
netstat -ano | findstr :6379

λΉŒλ“œ 였λ₯˜ μ‹œ:

gradlew.bat clean
rmdir /s /q .gradle
rmdir /s /q build
gradlew.bat clean build -x test

πŸš€ Tech Stack

πŸ“Œ Framework

πŸ“Œ Build Tool

πŸ“Œ Database

πŸ“Œ Security

πŸ“Œ Testing

πŸ“Œ Cloud & Infrastructure

πŸ“Œ Containerization

πŸ“Œ API Documentation

πŸ“Œ CI/CD

πŸ“Œ Team Collaboration


πŸš€ 배포 ν”„λ‘œμ„ΈμŠ€

Docker 기반 μžλ™ 배포

sequenceDiagram
    participant Dev as πŸ‘¨β€πŸ’» Developer
    participant GH as GitHub
    participant GA as GitHub Actions
    participant DH as Docker Hub
    participant EC2 as EC2 Server
    participant User as 🌐 Users
    
    Dev->>GH: git push origin develop
    GH->>GA: Trigger Workflow
    GA->>GA: Build Docker Image
    GA->>DH: Push Image
    GA->>EC2: SSH & Deploy
    EC2->>DH: Pull Latest Image
    EC2->>EC2: Stop Old Container
    EC2->>EC2: Start New Container
    EC2->>EC2: Health Check
    EC2-->>User: Service Available
Loading

배포 단계

  1. μ½”λ“œ ν‘Έμ‹œ: develop λΈŒλžœμΉ˜μ— push
  2. μžλ™ λΉŒλ“œ: GitHub Actionsκ°€ Docker 이미지 λΉŒλ“œ
  3. 이미지 ν‘Έμ‹œ: Docker Hub에 μ—…λ‘œλ“œ
  4. EC2 배포: μžλ™μœΌλ‘œ μ΅œμ‹  이미지 pull & μ‹€ν–‰
  5. 무쀑단 배포: Health check ν›„ 이전 버전 ꡐ체
  6. μ™„λ£Œ: μ•½ 5-8λΆ„ μ†Œμš”

Docker Hub

  • Repository: jinseok19/bamboo-server
  • Tags: latest (μ΅œμ‹ ), <commit-sha> (버전별)

도메인

νƒ€μž… 도메인 μš©λ„
Frontend https://smu-bamboo.uk ν”„λ‘ νŠΈμ—”λ“œ μ›Ήμ‚¬μ΄νŠΈ
Frontend https://www.smu-bamboo.uk ν”„λ‘ νŠΈμ—”λ“œ (www)
Backend https://api.smu-bamboo.uk REST API μ„œλ²„
Docs https://api.smu-bamboo.uk/swagger-ui/ API λ¬Έμ„œ

Image

#진석

About

πŸŽ‹πŸ€– 휴먼과 ν•™μˆ  동아리 BAMBOO ν™ˆνŽ˜μ΄μ§€ μ„œλ²„ πŸ€–πŸŽ‹

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages