server setting - dnd-side-project/dnd-6th-9-backend GitHub Wiki

μ„œλΉ„μŠ€ 배포λ₯Ό μœ„ν•œ nginx, CI/CDλ₯Ό μœ„ν•œ Jenkins μ„ΈνŒ…μ„ μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.
이 μ™Έμ˜ MySQL, https λ“±μ˜ μ„ΈνŒ…λ„ μ§„ν–‰ν–ˆμ§€λ§Œ, 해당은 μƒλž΅ν•˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.



Jenkins

image

  • Frontend, Backend 개발 μ΄λ²€νŠΈκ°€ λ°œμƒν–ˆμ„ λ•Œ μƒˆλ‘­κ²Œ λΉŒλ“œ ν›„ 배포할 수 μžˆλ„λ‘ μ„€μ •ν–ˆμŠ΅λ‹ˆλ‹€.
  • 배포에 μ§‘μ€‘ν•˜μ§€ μ•Šμ•„λ„ λ„λ©”μΈμ—μ„œ 개발 사항을 확인할 수 μžˆλ„λ‘ νš¨μœ¨μ„±μ„ λ†’μ˜€μŠ΅λ‹ˆλ‹€.

Frontend

echo 'yarn intall start'
yarn install
cd ..
sudo chmod -R 777 frontend-project
cd frontend-project
sudo yarn build
echo 'yarn build done'

Backend

echo 'backend build start'
sudo rm /var/lib/jenkins/workspace/backend-project/src/main/resources/application.properties
sudo cp /var/lib/jenkins/workspace/security-data/application.properties /var/lib/jenkins/workspace/backend-project/src/main/resources
./gradlew clean build -x test

### jar pid check ###

pid=$(ps -eaf | grep gratz-0.0.1-SNAPSHOT.jar | grep -v "grep" | grep -v $0 | awk '{print $2}')

if [[ $pid == "" ]]
then
 echo gratz-0.0.1-SNAPSHOT.jar is not running
else
 sudo kill -9 $pid
 echo gratz-0.0.1-SNAPSHOT.jar process killed forcefully, process id $pid.
fi

echo 'backend build end'



Database μ„€μ •

  • database new setting

    user mysql;
    select Host, User, Password from user;
    alter user 'root'@'localhost' identified with mysql_native_password by '<new-password>';
    flush privileges;
    exit;
  • database new create user : root둜 μ ‘μ†ν•œ 후에 μ§„ν–‰

    create user '<new-user-name>'@'%' identified by '<new-user-password>';
    grant all privileges on *.* to <new-user-name>@'%';
    flush privileges;
    exit;



Nginx

  • nginx μ„ΈνŒ… κ°’μ˜ httpsλ₯Ό λ°œκΈ‰ν•œ certbot의 pem.key pathλ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€.
    ssl_certificate <fullchain-key-path>
    ssl_certificate_key <privkey-key-path>
    
  • root 속성에 frontend build pathλ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€.
⚠️ **GitHub.com Fallback** ⚠️