From 60f09dce432e5d0b59ab6e2cc0f6508816604ed7 Mon Sep 17 00:00:00 2001 From: LeeShinHeang Date: Wed, 5 Feb 2025 14:11:08 +0900 Subject: [PATCH 01/26] =?UTF-8?q?fix:=20CI/CD=20=EB=B9=8C=EB=93=9C=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EC=A4=91=EB=B3=B5=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-build-deploy.yml | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/.github/workflows/dev-build-deploy.yml b/.github/workflows/dev-build-deploy.yml index 95c95c27..b244d9ac 100644 --- a/.github/workflows/dev-build-deploy.yml +++ b/.github/workflows/dev-build-deploy.yml @@ -55,11 +55,6 @@ jobs: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }} -f aics-auth/Dockerfile . docker tag ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:latest - - name: Docker image build for aics-auth - run: | - docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }} -f aics-auth/Dockerfile . - docker tag ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:latest - # Docker Hub 이미지 푸시 - name: docker Hub push for aics-admin run: | @@ -76,11 +71,6 @@ jobs: docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }} docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:latest - - name: docker Hub push for aics-auth - run: | - docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }} - docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:latest - deploy-to-dev: runs-on: ubuntu-latest needs: build-docker-image @@ -103,7 +93,7 @@ jobs: echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-api echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-admin echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-auth - + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-api echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-admin echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-auth \ No newline at end of file From a53f99c4d89ed6c619276d9c74c1f18e377a5124 Mon Sep 17 00:00:00 2001 From: LeeShinHeang Date: Wed, 5 Feb 2025 14:11:26 +0900 Subject: [PATCH 02/26] =?UTF-8?q?fix:=20Dockerfile=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aics-auth/Dockerfile | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 aics-auth/Dockerfile diff --git a/aics-auth/Dockerfile b/aics-auth/Dockerfile new file mode 100644 index 00000000..21b8cfea --- /dev/null +++ b/aics-auth/Dockerfile @@ -0,0 +1,4 @@ +FROM openjdk:17-jdk-slim +WORKDIR /app +COPY aics-api/build/libs/*.jar app.jar +ENTRYPOINT ["java", "-jar", "app.jar"] \ No newline at end of file From e04b74465ece7857bf1be5f0ddf06f8587b41cc7 Mon Sep 17 00:00:00 2001 From: LeeShinHeang Date: Wed, 5 Feb 2025 14:16:10 +0900 Subject: [PATCH 03/26] =?UTF-8?q?fix:=20Dockerfile=20=EA=B2=BD=EB=A1=9C=20?= =?UTF-8?q?=EC=98=A4=ED=83=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aics-auth/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aics-auth/Dockerfile b/aics-auth/Dockerfile index 21b8cfea..cf701408 100644 --- a/aics-auth/Dockerfile +++ b/aics-auth/Dockerfile @@ -1,4 +1,4 @@ FROM openjdk:17-jdk-slim WORKDIR /app -COPY aics-api/build/libs/*.jar app.jar +COPY aics-auth/build/libs/*.jar app.jar ENTRYPOINT ["java", "-jar", "app.jar"] \ No newline at end of file From 6ca4a5d59178e0acf821f648e2777c5695597525 Mon Sep 17 00:00:00 2001 From: LeeShinHeang Date: Wed, 5 Feb 2025 14:25:33 +0900 Subject: [PATCH 04/26] =?UTF-8?q?fix:=20CD=20=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=A4=84=EB=B0=94=EA=BF=88=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-build-deploy.yml | 125 +++++-------------------- 1 file changed, 26 insertions(+), 99 deletions(-) diff --git a/.github/workflows/dev-build-deploy.yml b/.github/workflows/dev-build-deploy.yml index b244d9ac..0075c325 100644 --- a/.github/workflows/dev-build-deploy.yml +++ b/.github/workflows/dev-build-deploy.yml @@ -1,99 +1,26 @@ -name: Build and Deploy to Development Server - -on: - push: - branches: - - develop - workflow_dispatch: - -jobs: - build-docker-image: - runs-on: ubuntu-latest - environment: dev - - steps: - - name: get repo from github - uses: actions/checkout@v3 - - # JDK setting - - name: Set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'temurin' - - # gradle 빌드 - - name: Setup Gradle - run: chmod +x gradlew - - - name: Build with Gradle Wrapper - run: | - ./gradlew clean build -p aics-admin -x test - ./gradlew clean build -p aics-api -x test - ./gradlew clean build -p aics-auth -x test - - # DockerHub 로그인 - - name: Docker login - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - - # Docker 이미지 빌드 - - name: Docker image build for aics-admin - run: | - docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:${{ github.sha }} -f aics-admin/Dockerfile . - docker tag ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:latest - - - name: Docker image build for aics-api - run: | - docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:${{ github.sha }} -f aics-api/Dockerfile . - docker tag ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:latest - - - name: Docker image build for aics-auth - run: | - docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }} -f aics-auth/Dockerfile . - docker tag ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:latest - - # Docker Hub 이미지 푸시 - - name: docker Hub push for aics-admin - run: | - docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:${{ github.sha }} - docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:latest - - - name: docker Hub push for aics-api - run: | - docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:${{ github.sha }} - docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:latest - - - name: docker Hub push for aics-auth - run: | - docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }} - docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:latest - - deploy-to-dev: - runs-on: ubuntu-latest - needs: build-docker-image - environment: dev - - steps: - - name: checkout repository - uses: actions/checkout@v3 - - - name: SSH to server and deploy - uses: appleboy/ssh-action@v1.1.0 - with: - host: ${{ secrets.SERVER_HOST }} - username: ${{ secrets.SERVER_USERNAME }} - password: ${{ secrets.SERVER_PASSWORD }} - port: ${{ secrets.SERVER_PORT }} - script: | - echo "${{ secrets.SERVER_PASSWORD }}" | scp docker/development/docker-compose.yml ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:${{ secrets.DOCKER_COMPOSE_PATH }} - - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-api - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-admin - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-auth - - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-api - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-admin - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-auth \ No newline at end of file +deploy-to-dev: + runs-on: ubuntu-latest + needs: build-docker-image + environment: dev + + steps: + - name: checkout repository + uses: actions/checkout@v3 + + - name: SSH to server and deploy + uses: appleboy/ssh-action@v1.1.0 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USERNAME }} + password: ${{ secrets.SERVER_PASSWORD }} + port: ${{ secrets.SERVER_PORT }} + script: | + echo "${{ secrets.SERVER_PASSWORD }}" | scp docker/development/docker-compose.yml ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:${{ secrets.DOCKER_COMPOSE_PATH }} + + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-api + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-admin + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-auth + + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-api + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-admin + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-auth \ No newline at end of file From 7536760397bf7d8a59e722df850c3cbcfc8e2af0 Mon Sep 17 00:00:00 2001 From: LeeShinHeang Date: Wed, 5 Feb 2025 14:28:02 +0900 Subject: [PATCH 05/26] =?UTF-8?q?fix:=20CD=20=EB=B3=B5=EA=B5=AC=20?= =?UTF-8?q?=EB=B0=8F=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-build-deploy.yml | 125 ++++++++++++++++++++----- 1 file changed, 99 insertions(+), 26 deletions(-) diff --git a/.github/workflows/dev-build-deploy.yml b/.github/workflows/dev-build-deploy.yml index 0075c325..8248cc8b 100644 --- a/.github/workflows/dev-build-deploy.yml +++ b/.github/workflows/dev-build-deploy.yml @@ -1,26 +1,99 @@ -deploy-to-dev: - runs-on: ubuntu-latest - needs: build-docker-image - environment: dev - - steps: - - name: checkout repository - uses: actions/checkout@v3 - - - name: SSH to server and deploy - uses: appleboy/ssh-action@v1.1.0 - with: - host: ${{ secrets.SERVER_HOST }} - username: ${{ secrets.SERVER_USERNAME }} - password: ${{ secrets.SERVER_PASSWORD }} - port: ${{ secrets.SERVER_PORT }} - script: | - echo "${{ secrets.SERVER_PASSWORD }}" | scp docker/development/docker-compose.yml ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:${{ secrets.DOCKER_COMPOSE_PATH }} - - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-api - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-admin - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-auth - - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-api - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-admin - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-auth \ No newline at end of file +name: Build and Deploy to Development Server + +on: + push: + branches: + - develop + workflow_dispatch: + +jobs: + build-docker-image: + runs-on: ubuntu-latest + environment: dev + + steps: + - name: get repo from github + uses: actions/checkout@v3 + + # JDK setting + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + # gradle 빌드 + - name: Setup Gradle + run: chmod +x gradlew + + - name: Build with Gradle Wrapper + run: | + ./gradlew clean build -p aics-admin -x test + ./gradlew clean build -p aics-api -x test + ./gradlew clean build -p aics-auth -x test + + # DockerHub 로그인 + - name: Docker login + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + # Docker 이미지 빌드 + - name: Docker image build for aics-admin + run: | + docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:${{ github.sha }} -f aics-admin/Dockerfile . + docker tag ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:latest + + - name: Docker image build for aics-api + run: | + docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:${{ github.sha }} -f aics-api/Dockerfile . + docker tag ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:latest + + - name: Docker image build for aics-auth + run: | + docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }} -f aics-auth/Dockerfile . + docker tag ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:latest + + # Docker Hub 이미지 푸시 + - name: docker Hub push for aics-admin + run: | + docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:${{ github.sha }} + docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:latest + + - name: docker Hub push for aics-api + run: | + docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:${{ github.sha }} + docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:latest + + - name: docker Hub push for aics-auth + run: | + docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }} + docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:latest + + deploy-to-dev: + runs-on: ubuntu-latest + needs: build-docker-image + environment: dev + + steps: + - name: checkout repository + uses: actions/checkout@v3 + + - name: SSH to server and deploy + uses: appleboy/ssh-action@v1.1.0 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USERNAME }} + password: ${{ secrets.SERVER_PASSWORD }} + port: ${{ secrets.SERVER_PORT }} + script: | + echo "${{ secrets.SERVER_PASSWORD }}" | scp docker/development/docker-compose.yml ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:${{ secrets.DOCKER_COMPOSE_PATH }} + + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-api + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-admin + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-auth + + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-api + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-admin + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-auth \ No newline at end of file From ae109d5eb1ed32ba0ddca52aa31a92c445fe0fff Mon Sep 17 00:00:00 2001 From: leehaneum Date: Wed, 5 Feb 2025 20:02:59 +0900 Subject: [PATCH 06/26] =?UTF-8?q?chore:=20scp=20=EB=AA=85=EB=A0=B9?= =?UTF-8?q?=EC=96=B4=20~=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-build-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dev-build-deploy.yml b/.github/workflows/dev-build-deploy.yml index 8248cc8b..f043921b 100644 --- a/.github/workflows/dev-build-deploy.yml +++ b/.github/workflows/dev-build-deploy.yml @@ -88,7 +88,7 @@ jobs: password: ${{ secrets.SERVER_PASSWORD }} port: ${{ secrets.SERVER_PORT }} script: | - echo "${{ secrets.SERVER_PASSWORD }}" | scp docker/development/docker-compose.yml ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:${{ secrets.DOCKER_COMPOSE_PATH }} + echo "${{ secrets.SERVER_PASSWORD }}" | scp docker/development/docker-compose.yml ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:~${{ secrets.DOCKER_COMPOSE_PATH }} echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-api echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-admin From 2a67cce803be4bea4f92793079da1248d7abcbda Mon Sep 17 00:00:00 2001 From: leehaneum Date: Wed, 5 Feb 2025 20:49:47 +0900 Subject: [PATCH 07/26] =?UTF-8?q?chore:=20sudo=20=EB=AA=85=EB=A0=B9?= =?UTF-8?q?=EC=96=B4=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-build-deploy.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/dev-build-deploy.yml b/.github/workflows/dev-build-deploy.yml index f043921b..355864ef 100644 --- a/.github/workflows/dev-build-deploy.yml +++ b/.github/workflows/dev-build-deploy.yml @@ -88,12 +88,12 @@ jobs: password: ${{ secrets.SERVER_PASSWORD }} port: ${{ secrets.SERVER_PORT }} script: | - echo "${{ secrets.SERVER_PASSWORD }}" | scp docker/development/docker-compose.yml ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:~${{ secrets.DOCKER_COMPOSE_PATH }} + echo "${{ secrets.SERVER_PASSWORD }}" | scp docker/development/docker-compose.yml ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:${{ secrets.DOCKER_COMPOSE_PATH }} - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-api - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-admin - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-auth + echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-api + echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-admin + echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-auth - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-api - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-admin - echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-auth \ No newline at end of file + echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-api + echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-admin + echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-auth \ No newline at end of file From 8d00cc9cdbff7a867d81c865b2b60443215e1702 Mon Sep 17 00:00:00 2001 From: leehaneum Date: Wed, 5 Feb 2025 20:53:18 +0900 Subject: [PATCH 08/26] =?UTF-8?q?chore:=20docker-compose.yml=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EB=AA=85=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-build-deploy.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/dev-build-deploy.yml b/.github/workflows/dev-build-deploy.yml index 355864ef..f8ea2df6 100644 --- a/.github/workflows/dev-build-deploy.yml +++ b/.github/workflows/dev-build-deploy.yml @@ -90,10 +90,10 @@ jobs: script: | echo "${{ secrets.SERVER_PASSWORD }}" | scp docker/development/docker-compose.yml ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:${{ secrets.DOCKER_COMPOSE_PATH }} - echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-api - echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-admin - echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-auth + echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-api + echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-admin + echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-auth - echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-api - echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-admin - echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-auth \ No newline at end of file + echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml up -d aics-api + echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml up -d aics-admin + echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml up -d aics-auth \ No newline at end of file From 18815e19b65fbb1261f89ce57ac7b1d487cda51c Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 01:39:57 +0900 Subject: [PATCH 09/26] =?UTF-8?q?chore:=20sshpass=EB=A1=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-build-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dev-build-deploy.yml b/.github/workflows/dev-build-deploy.yml index f8ea2df6..7518bc2e 100644 --- a/.github/workflows/dev-build-deploy.yml +++ b/.github/workflows/dev-build-deploy.yml @@ -88,7 +88,7 @@ jobs: password: ${{ secrets.SERVER_PASSWORD }} port: ${{ secrets.SERVER_PORT }} script: | - echo "${{ secrets.SERVER_PASSWORD }}" | scp docker/development/docker-compose.yml ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:${{ secrets.DOCKER_COMPOSE_PATH }} + sshpass -p "${{ secrets.SERVER_PASSWORD }}" scp docker/development/docker-compose.yml ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:${{ secrets.DOCKER_COMPOSE_PATH }} echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-api echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-admin From 19f34363ba914c24104056c8a954f5749234fa3d Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 01:44:57 +0900 Subject: [PATCH 10/26] =?UTF-8?q?chore:=20github.workspace=20=ED=99=98?= =?UTF-8?q?=EA=B2=BD=EB=B3=80=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-build-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dev-build-deploy.yml b/.github/workflows/dev-build-deploy.yml index 7518bc2e..52f78a17 100644 --- a/.github/workflows/dev-build-deploy.yml +++ b/.github/workflows/dev-build-deploy.yml @@ -88,7 +88,7 @@ jobs: password: ${{ secrets.SERVER_PASSWORD }} port: ${{ secrets.SERVER_PORT }} script: | - sshpass -p "${{ secrets.SERVER_PASSWORD }}" scp docker/development/docker-compose.yml ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:${{ secrets.DOCKER_COMPOSE_PATH }} + sshpass -p "${{ secrets.SERVER_PASSWORD }}" scp ${{ github.workspace }}/docker/development/docker-compose.yml ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:${{ secrets.DOCKER_COMPOSE_PATH }} echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-api echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-admin From 171e21fd9439be2072037f50c49bb122254f831d Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 01:53:13 +0900 Subject: [PATCH 11/26] =?UTF-8?q?chore:=20target=20=EA=B2=BD=EB=A1=9C=20?= =?UTF-8?q?=EB=AA=85=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-build-deploy.yml | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/.github/workflows/dev-build-deploy.yml b/.github/workflows/dev-build-deploy.yml index 52f78a17..50e4864c 100644 --- a/.github/workflows/dev-build-deploy.yml +++ b/.github/workflows/dev-build-deploy.yml @@ -80,7 +80,17 @@ jobs: - name: checkout repository uses: actions/checkout@v3 - - name: SSH to server and deploy + - name: scp docker-compose.yml to server + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USERNAME }} + password: ${{ secrets.SERVER_PASSWORD }} + port: ${{ secrets.SERVER_PORT }} + source: docker/development/docker-compose.yml + target: ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} + + - name: ssh to server and deploy uses: appleboy/ssh-action@v1.1.0 with: host: ${{ secrets.SERVER_HOST }} @@ -88,12 +98,10 @@ jobs: password: ${{ secrets.SERVER_PASSWORD }} port: ${{ secrets.SERVER_PORT }} script: | - sshpass -p "${{ secrets.SERVER_PASSWORD }}" scp ${{ github.workspace }}/docker/development/docker-compose.yml ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:${{ secrets.DOCKER_COMPOSE_PATH }} - - echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-api - echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-admin - echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-auth - - echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml up -d aics-api - echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml up -d aics-admin - echo "${{ secrets.SERVER_PASSWORD }}" | docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml up -d aics-auth \ No newline at end of file + docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-api + docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-admin + docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-auth + + docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml up -d aics-api + docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml up -d aics-admin + docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml up -d aics-auth \ No newline at end of file From 6569c6a1c7c7c71b2b77e0e859111efa19e3a118 Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 02:18:08 +0900 Subject: [PATCH 12/26] =?UTF-8?q?chore:=20hibernate.dialect=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aics-api/src/main/resources/application.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/aics-api/src/main/resources/application.yml b/aics-api/src/main/resources/application.yml index 161a775e..402be94f 100644 --- a/aics-api/src/main/resources/application.yml +++ b/aics-api/src/main/resources/application.yml @@ -11,12 +11,12 @@ spring: jpa: hibernate: ddl-auto: validate - default_batch_fetch_size: 1000 - jdbc: - time_zone: Asia/Seoul defer-datasource-initialization: true show-sql: true open-in-view: false + properties: + hibernate: + dialect: org.hibernate.dialect.PostgreSQLDialect servlet: multipart: From 61a4e3f4d56cd69cb7a9d5aa2eb7f8dac5bdfa0e Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 02:27:04 +0900 Subject: [PATCH 13/26] =?UTF-8?q?chore:=20.env=20=EA=B2=BD=EB=A1=9C=20?= =?UTF-8?q?=EB=AA=85=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-build-deploy.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/dev-build-deploy.yml b/.github/workflows/dev-build-deploy.yml index 50e4864c..ecaf7410 100644 --- a/.github/workflows/dev-build-deploy.yml +++ b/.github/workflows/dev-build-deploy.yml @@ -102,6 +102,6 @@ jobs: docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-admin docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-auth - docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml up -d aics-api - docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml up -d aics-admin - docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml up -d aics-auth \ No newline at end of file + docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml --env-file ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-api + docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml --env-file ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-admin + docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml --env-file ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-auth \ No newline at end of file From 96d9d5f1ffc4f5be051b31478d6aa703492ab079 Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 02:33:47 +0900 Subject: [PATCH 14/26] =?UTF-8?q?chore:=20.env=20=EA=B2=BD=EB=A1=9C=20?= =?UTF-8?q?=ED=99=98=EA=B2=BD=EB=B3=80=EC=88=98=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-build-deploy.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/dev-build-deploy.yml b/.github/workflows/dev-build-deploy.yml index ecaf7410..f34098e6 100644 --- a/.github/workflows/dev-build-deploy.yml +++ b/.github/workflows/dev-build-deploy.yml @@ -102,6 +102,6 @@ jobs: docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-admin docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-auth - docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml --env-file ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-api - docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml --env-file ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-admin - docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml --env-file ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-auth \ No newline at end of file + docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml --env-file ${{ secrets.ENVIRONMENT_PATH }} up -d aics-api + docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml --env-file ${{ secrets.ENVIRONMENT_PATH }} up -d aics-admin + docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml --env-file ${{ secrets.ENVIRONMENT_PATH }} up -d aics-auth \ No newline at end of file From e41e03ce54b0d2af52186fce028764176ad5e9f9 Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 03:37:17 +0900 Subject: [PATCH 15/26] =?UTF-8?q?chore:=20IAM=20=EA=B3=84=EC=A0=95?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-build-deploy.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/dev-build-deploy.yml b/.github/workflows/dev-build-deploy.yml index f34098e6..918bf372 100644 --- a/.github/workflows/dev-build-deploy.yml +++ b/.github/workflows/dev-build-deploy.yml @@ -98,10 +98,10 @@ jobs: password: ${{ secrets.SERVER_PASSWORD }} port: ${{ secrets.SERVER_PORT }} script: | - docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-api - docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-admin - docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-auth + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-api + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-admin + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml pull aics-auth - docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml --env-file ${{ secrets.ENVIRONMENT_PATH }} up -d aics-api - docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml --env-file ${{ secrets.ENVIRONMENT_PATH }} up -d aics-admin - docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml --env-file ${{ secrets.ENVIRONMENT_PATH }} up -d aics-auth \ No newline at end of file + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml --env-file ${{ secrets.ENVIRONMENT_PATH }} up -d aics-api + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml --env-file ${{ secrets.ENVIRONMENT_PATH }} up -d aics-admin + echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }}/docker-compose.yml --env-file ${{ secrets.ENVIRONMENT_PATH }} up -d aics-auth \ No newline at end of file From e7f85da0a881a09a4b4b40e6d2c6445ca34431bb Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 03:47:45 +0900 Subject: [PATCH 16/26] =?UTF-8?q?chore:=20scp=EB=A1=9C=20=EC=98=A4?= =?UTF-8?q?=ED=83=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-build-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dev-build-deploy.yml b/.github/workflows/dev-build-deploy.yml index 918bf372..7d4c9064 100644 --- a/.github/workflows/dev-build-deploy.yml +++ b/.github/workflows/dev-build-deploy.yml @@ -81,7 +81,7 @@ jobs: uses: actions/checkout@v3 - name: scp docker-compose.yml to server - uses: appleboy/ssh-action@master + uses: appleboy/scp-action@master with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SERVER_USERNAME }} From 2fe62e62085f18477bf8984d8401f03ae1633f08 Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 03:52:25 +0900 Subject: [PATCH 17/26] =?UTF-8?q?chore:=20strip=5Fcomponents=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-build-deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/dev-build-deploy.yml b/.github/workflows/dev-build-deploy.yml index 7d4c9064..7a37c020 100644 --- a/.github/workflows/dev-build-deploy.yml +++ b/.github/workflows/dev-build-deploy.yml @@ -89,6 +89,7 @@ jobs: port: ${{ secrets.SERVER_PORT }} source: docker/development/docker-compose.yml target: ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} + strip_components: 3 - name: ssh to server and deploy uses: appleboy/ssh-action@v1.1.0 From 7448269573cc3881f5b1d1a4009cc062a51bea34 Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 03:55:39 +0900 Subject: [PATCH 18/26] =?UTF-8?q?chore:=20strip=5Fcomponents=202=EB=A1=9C?= =?UTF-8?q?=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-build-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dev-build-deploy.yml b/.github/workflows/dev-build-deploy.yml index 7a37c020..95e8fad5 100644 --- a/.github/workflows/dev-build-deploy.yml +++ b/.github/workflows/dev-build-deploy.yml @@ -89,7 +89,7 @@ jobs: port: ${{ secrets.SERVER_PORT }} source: docker/development/docker-compose.yml target: ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} - strip_components: 3 + strip_components: 2 - name: ssh to server and deploy uses: appleboy/ssh-action@v1.1.0 From 0fe62032078ccf75069867eba0fe5be2c025e114 Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 04:14:49 +0900 Subject: [PATCH 19/26] =?UTF-8?q?chore:=20docker-compose.yml=20=ED=99=98?= =?UTF-8?q?=EA=B2=BD=EB=B3=80=EC=88=98=20=EA=B2=BD=EB=A1=9C=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/development/docker-compose.yml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/docker/development/docker-compose.yml b/docker/development/docker-compose.yml index 0c730bbc..168708ee 100644 --- a/docker/development/docker-compose.yml +++ b/docker/development/docker-compose.yml @@ -6,6 +6,8 @@ services: container_name: aics-api ports: - "${AICS_API_PORT}:8080" + env_file: + - .env depends_on: - postgres - redis @@ -17,6 +19,8 @@ services: container_name: aics-admin ports: - "${AICS_ADMIN_PORT}:8081" + env_file: + - .env depends_on: - postgres - redis @@ -28,6 +32,8 @@ services: container_name: aics-auth ports: - "${AICS_AUTH_PORT}:8082" + env_file: + - .env depends_on: - postgres - redis @@ -40,9 +46,8 @@ services: restart: always ports: - "${POSTGRES_PORT}:5432" - environment: - POSTGRES_USER: ${DB_USERNAME} - POSTGRES_PASSWORD: ${DB_PASSWORD} + env_file: + - .env volumes: - postgres-data:${DB_VOLUME_PATH} networks: @@ -55,6 +60,8 @@ services: command: redis-server ports: - "${REDIS_PORT}:6379" + env_file: + - .env networks: - aics-network From 2e1a1c6982b5af1dd967a0f664a9c2fb84134089 Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 04:55:04 +0900 Subject: [PATCH 20/26] =?UTF-8?q?chore:=20dev=20=EC=8A=A4=EC=9B=A8?= =?UTF-8?q?=EA=B1=B0=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/config/SwaggerConfig.java | 111 ++++------------- .../src/main/resources/application-dev.yml | 6 - .../src/main/resources/application-local.yml | 6 - aics-admin/src/main/resources/application.yml | 5 + .../developers/api/config/SwaggerConfig.java | 109 ++++------------- .../src/main/resources/application-dev.yml | 8 +- .../src/main/resources/application-local.yml | 8 +- aics-api/src/main/resources/application.yml | 5 +- .../developers/auth/config/SwaggerConfig.java | 112 ++++-------------- .../src/main/resources/application-dev.yml | 8 +- .../src/main/resources/application-local.yml | 8 +- aics-auth/src/main/resources/application.yml | 5 +- 12 files changed, 93 insertions(+), 298 deletions(-) diff --git a/aics-admin/src/main/java/kgu/developers/admin/config/SwaggerConfig.java b/aics-admin/src/main/java/kgu/developers/admin/config/SwaggerConfig.java index 2987eba7..dba69d43 100644 --- a/aics-admin/src/main/java/kgu/developers/admin/config/SwaggerConfig.java +++ b/aics-admin/src/main/java/kgu/developers/admin/config/SwaggerConfig.java @@ -1,136 +1,77 @@ -package kgu.developers.admin.config; +package kgu.developers.api.config; + +import static java.lang.String.format; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityScheme; -import io.swagger.v3.oas.models.servers.Server; -import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.env.Environment; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import static java.lang.String.format; -import static org.springframework.security.config.Elements.JWT; @Configuration @RequiredArgsConstructor public class SwaggerConfig { - private final Environment environment; - - @Value("${profiles.current-ip}") - private String currentIp; - - @Value("${profiles.api-port}") - private int apiPort; - - @Value("${profiles.admin-api-port}") - private int adminApiPort; + @Value("${docs.api-docs-url}") + private String apiDocsUrl; - @Value("${profiles.auth-api-port}") - private int authApiPort; + @Value("${docs.admin-docs-url}") + private String adminDocsUrl; - private final Map> profileServerConfig = new HashMap<>(); - - @PostConstruct - public void initializeProfileServerConfig() { - profileServerConfig.put("local", Map.of("url", "http://localhost", "port", adminApiPort)); - profileServerConfig.put("dev", Map.of("url", "http://" + currentIp, "port", adminApiPort)); - } + @Value("${docs.auth-docs-url}") + private String authDocsUrl; @Bean public OpenAPI openAPI() { return new OpenAPI() .info(apiInfo()) .addSecurityItem(securityRequirement()) - .servers(initializeServers()) .components(components()); } private SecurityRequirement securityRequirement() { - return new SecurityRequirement().addList(JWT); + return new SecurityRequirement().addList("bearer"); } private Info apiInfo() { return new Info() - .title("AICS-HOME ADMIN API") + .title("AICS-HOME ADMIN") .description(getDescription()); } - private List initializeServers() { - return profileServerConfig.entrySet().stream() - .filter(entry -> environment.matchesProfiles(entry.getKey())) - .map(entry -> { - String url = (String) entry.getValue().get("url"); - int port = (int) entry.getValue().get("port"); - return openApiServer(url + ":" + port, "AICS-HOME ADMIN API " + entry.getKey().toUpperCase()); - }) - .collect(Collectors.toList()); - } - - private Server openApiServer(String url, String description) { - return new Server().url(url).description(description); - } - private Components components() { - return new Components().addSecuritySchemes(JWT, securityScheme()); + return new Components().addSecuritySchemes("bearer", securityScheme()); } private SecurityScheme securityScheme() { return new SecurityScheme() - .name(JWT) + .name("bearer") .type(SecurityScheme.Type.HTTP) .scheme("bearer") - .bearerFormat(JWT); + .bearerFormat("JWT"); } private String getDescription() { - String activeProfile = getActiveProfile(); return format(""" - AI 컴퓨터공학부 커뮤니티 관리자, AICS-HOME ADMIN API 입니다. + AI 컴퓨터공학부 커뮤니티 관리자, AICS-HOME ADMIN 입니다. 로그인 API를 통해 액세스 토큰을 발급 받고 헤더에 값을 넣어주세요. 별다른 절차 없이 API를 사용하실 수 있습니다. - 사용자 API 문서는 다음 링크에서 확인하실 수 있습니다. -
    -
  • AICS-HOME API : %s
  • -
- - 인증 인가 API 문서는 다음 링크에서 확인하실 수 있습니다.
    -
  • AICS-HOME AUTH API : %s
  • -
+
  • 사용자 API 문서: %s

  • +
  • 관리자 API 문서: %s

  • +
  • 인증/인가 API 문서: %s
  • + """, - getApiSwaggerByProfile(activeProfile), getApiSwaggerByProfile(activeProfile), - getAuthSwaggerByProfile(activeProfile), getAuthSwaggerByProfile(activeProfile) - ); - } - - private String getAuthSwaggerByProfile(String profile) { - String url = (String) profileServerConfig.get(profile).get("url"); - return url + ":" + authApiPort + "/swagger-ui/index.html"; - } - - private String getApiSwaggerByProfile(String profile) { - String url = (String) profileServerConfig.get(profile).get("url"); - return url + ":" + apiPort + "/swagger-ui/index.html"; - } - - private String getActiveProfile() { - return Arrays.stream(environment.getActiveProfiles()) - .findFirst() - .orElse("local"); + apiDocsUrl, apiDocsUrl, + adminDocsUrl, adminDocsUrl, + authDocsUrl, authDocsUrl); } } diff --git a/aics-admin/src/main/resources/application-dev.yml b/aics-admin/src/main/resources/application-dev.yml index 92a38d5a..e6cd0c09 100644 --- a/aics-admin/src/main/resources/application-dev.yml +++ b/aics-admin/src/main/resources/application-dev.yml @@ -7,9 +7,3 @@ spring: host: ${REDIS_HOST:redis} port: ${REDIS_PORT:6379} password: ${REDIS_PASSWORD} - -profiles: - current-ip: ${CURRENT_IP} - api-port: ${API_SERVER_PORT:8080} - admin-api-port: ${ADMIN_API_SERVER_PORT:8081} - auth-api-port: ${AUTH_API_SERVER_PORT:8082} \ No newline at end of file diff --git a/aics-admin/src/main/resources/application-local.yml b/aics-admin/src/main/resources/application-local.yml index 9cd9787d..d0a6e1fc 100644 --- a/aics-admin/src/main/resources/application-local.yml +++ b/aics-admin/src/main/resources/application-local.yml @@ -2,9 +2,3 @@ spring: jpa: hibernate: ddl-auto: update - -profiles: - current-ip: ${CURRENT_IP:localhost} - api-port: ${API_SERVER_PORT:8080} - admin-api-port: ${ADMIN_API_SERVER_PORT:8081} - auth-api-port: ${AUTH_API_SERVER_PORT:8082} \ No newline at end of file diff --git a/aics-admin/src/main/resources/application.yml b/aics-admin/src/main/resources/application.yml index 1aabfde9..134239b5 100644 --- a/aics-admin/src/main/resources/application.yml +++ b/aics-admin/src/main/resources/application.yml @@ -49,3 +49,8 @@ springdoc: jwt: issuer: ${JWT_ISSUER} secret_key: ${JWT_SECRET_KEY} + +docs: + admin-docs-url: ${ADMIN_DOCS_URL} + api-docs-url: ${API_DOCS_URL} + auth-docs-url: ${AUTH_DOCS_URL} \ No newline at end of file diff --git a/aics-api/src/main/java/kgu/developers/api/config/SwaggerConfig.java b/aics-api/src/main/java/kgu/developers/api/config/SwaggerConfig.java index e93c754f..912ddf86 100644 --- a/aics-api/src/main/java/kgu/developers/api/config/SwaggerConfig.java +++ b/aics-api/src/main/java/kgu/developers/api/config/SwaggerConfig.java @@ -1,64 +1,41 @@ package kgu.developers.api.config; +import static java.lang.String.format; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityScheme; -import io.swagger.v3.oas.models.servers.Server; -import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.env.Environment; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import static java.lang.String.format; -import static org.springframework.security.config.Elements.JWT; @Configuration @RequiredArgsConstructor public class SwaggerConfig { - private final Environment environment; - - @Value("${profiles.current-ip}") - private String currentIp; - - @Value("${profiles.api-port}") - private int apiPort; - - @Value("${profiles.admin-api-port}") - private int adminApiPort; + @Value("${docs.api-docs-url}") + private String apiDocsUrl; - @Value("${profiles.auth-api-port}") - private int authApiPort; + @Value("${docs.admin-docs-url}") + private String adminDocsUrl; - private final Map> profileServerConfig = new HashMap<>(); - - @PostConstruct - public void initializeProfileServerConfig() { - profileServerConfig.put("local", Map.of("url", "http://localhost", "port", apiPort)); - profileServerConfig.put("dev", Map.of("url", "http://" + currentIp, "port", apiPort)); - } + @Value("${docs.auth-docs-url}") + private String authDocsUrl; @Bean public OpenAPI openAPI() { return new OpenAPI() .info(apiInfo()) .addSecurityItem(securityRequirement()) - .servers(initializeServers()) .components(components()); } private SecurityRequirement securityRequirement() { - return new SecurityRequirement().addList(JWT); + return new SecurityRequirement().addList("bearer"); } private Info apiInfo() { @@ -67,72 +44,34 @@ private Info apiInfo() { .description(getDescription()); } - private List initializeServers() { - return profileServerConfig.entrySet().stream() - .filter(entry -> environment.matchesProfiles(entry.getKey())) - .map(entry -> { - String url = (String) entry.getValue().get("url"); - int port = (int) entry.getValue().get("port"); - return openApiServer(url + ":" + port, "AICS-HOME API " + entry.getKey().toUpperCase()); - }) - .collect(Collectors.toList()); - } - - private Server openApiServer(String url, String description) { - return new Server().url(url).description(description); - } - private Components components() { - return new Components().addSecuritySchemes(JWT, securityScheme()); + return new Components().addSecuritySchemes("bearer", securityScheme()); } private SecurityScheme securityScheme() { return new SecurityScheme() - .name(JWT) + .name("bearer") .type(SecurityScheme.Type.HTTP) .scheme("bearer") - .bearerFormat(JWT); + .bearerFormat("JWT"); } private String getDescription() { - String activeProfile = getActiveProfile(); return format(""" - AI 컴퓨터공학부 커뮤니티 관리자, AICS-HOME ADMIN API 입니다. + AI 컴퓨터공학부 커뮤니티, AICS-HOME API 입니다. 로그인 API를 통해 액세스 토큰을 발급 받고 헤더에 값을 넣어주세요. 별다른 절차 없이 API를 사용하실 수 있습니다. - 관리자 API 문서는 다음 링크에서 확인하실 수 있습니다. -
      -
    • AICS-HOME ADMIN API : %s
    • -
    - - 인증 인가 API 문서는 다음 링크에서 확인하실 수 있습니다.
      -
    • AICS-HOME AUTH API : %s
    • -
    +
  • 사용자 API 문서: %s

  • +
  • 관리자 API 문서: %s

  • +
  • 인증/인가 API 문서: %s
  • + """, - getAdminSwaggerByProfile(activeProfile), - getAdminSwaggerByProfile(activeProfile), - getAuthSwaggerByProfile(activeProfile), - getAuthSwaggerByProfile(activeProfile) - ); - } - - private String getAdminSwaggerByProfile(String profile) { - String url = (String) profileServerConfig.get(profile).get("url"); - return url + ":" + adminApiPort + "/swagger-ui/index.html"; - } - - private String getAuthSwaggerByProfile(String profile) { - String url = (String) profileServerConfig.get(profile).get("url"); - return url + ":" + authApiPort + "/swagger-ui/index.html"; - } - - private String getActiveProfile() { - return Arrays.stream(environment.getActiveProfiles()) - .findFirst() - .orElse("local"); + apiDocsUrl, apiDocsUrl, + adminDocsUrl, adminDocsUrl, + authDocsUrl, authDocsUrl); } } diff --git a/aics-api/src/main/resources/application-dev.yml b/aics-api/src/main/resources/application-dev.yml index 92a38d5a..536196ca 100644 --- a/aics-api/src/main/resources/application-dev.yml +++ b/aics-api/src/main/resources/application-dev.yml @@ -6,10 +6,4 @@ spring: redis: host: ${REDIS_HOST:redis} port: ${REDIS_PORT:6379} - password: ${REDIS_PASSWORD} - -profiles: - current-ip: ${CURRENT_IP} - api-port: ${API_SERVER_PORT:8080} - admin-api-port: ${ADMIN_API_SERVER_PORT:8081} - auth-api-port: ${AUTH_API_SERVER_PORT:8082} \ No newline at end of file + password: ${REDIS_PASSWORD} \ No newline at end of file diff --git a/aics-api/src/main/resources/application-local.yml b/aics-api/src/main/resources/application-local.yml index 9cd9787d..7797cddf 100644 --- a/aics-api/src/main/resources/application-local.yml +++ b/aics-api/src/main/resources/application-local.yml @@ -1,10 +1,4 @@ spring: jpa: hibernate: - ddl-auto: update - -profiles: - current-ip: ${CURRENT_IP:localhost} - api-port: ${API_SERVER_PORT:8080} - admin-api-port: ${ADMIN_API_SERVER_PORT:8081} - auth-api-port: ${AUTH_API_SERVER_PORT:8082} \ No newline at end of file + ddl-auto: update \ No newline at end of file diff --git a/aics-api/src/main/resources/application.yml b/aics-api/src/main/resources/application.yml index 402be94f..8f2ca137 100644 --- a/aics-api/src/main/resources/application.yml +++ b/aics-api/src/main/resources/application.yml @@ -47,4 +47,7 @@ jwt: issuer: ${JWT_ISSUER} secret_key: ${JWT_SECRET_KEY} - +docs: + admin-docs-url: ${ADMIN_DOCS_URL} + api-docs-url: ${API_DOCS_URL} + auth-docs-url: ${AUTH_DOCS_URL} \ No newline at end of file diff --git a/aics-auth/src/main/java/kgu/developers/auth/config/SwaggerConfig.java b/aics-auth/src/main/java/kgu/developers/auth/config/SwaggerConfig.java index 608fb1dc..1ddf820f 100644 --- a/aics-auth/src/main/java/kgu/developers/auth/config/SwaggerConfig.java +++ b/aics-auth/src/main/java/kgu/developers/auth/config/SwaggerConfig.java @@ -1,137 +1,77 @@ -package kgu.developers.auth.config; +package kgu.developers.api.config; + +import static java.lang.String.format; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityScheme; -import io.swagger.v3.oas.models.servers.Server; -import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.env.Environment; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import static java.lang.String.format; -import static org.springframework.security.config.Elements.JWT; @Configuration @RequiredArgsConstructor public class SwaggerConfig { - private final Environment environment; - - @Value("${profiles.current-ip}") - private String currentIp; - - @Value("${profiles.api-port}") - private int apiPort; - @Value("${profiles.admin-api-port}") - private int adminApiPort; + @Value("${docs.api-docs-url}") + private String apiDocsUrl; - @Value("${profiles.auth-api-port}") - private int authApiPort; + @Value("${docs.admin-docs-url}") + private String adminDocsUrl; - private final Map> profileServerConfig = new HashMap<>(); - - @PostConstruct - public void initializeProfileServerConfig() { - profileServerConfig.put("local", Map.of("url", "http://localhost", "port", authApiPort)); - profileServerConfig.put("dev", Map.of("url", "http://" + currentIp, "port", authApiPort)); - } + @Value("${docs.auth-docs-url}") + private String authDocsUrl; @Bean public OpenAPI openAPI() { return new OpenAPI() .info(apiInfo()) .addSecurityItem(securityRequirement()) - .servers(initializeServers()) .components(components()); } private SecurityRequirement securityRequirement() { - return new SecurityRequirement().addList(JWT); + return new SecurityRequirement().addList("bearer"); } private Info apiInfo() { return new Info() - .title("AICS-HOME API") + .title("AICS-HOME AUTH") .description(getDescription()); } - private List initializeServers() { - return profileServerConfig.entrySet().stream() - .filter(entry -> environment.matchesProfiles(entry.getKey())) - .map(entry -> { - String url = (String) entry.getValue().get("url"); - int port = (int) entry.getValue().get("port"); - return openApiServer(url + ":" + port, "AICS-HOME API " + entry.getKey().toUpperCase()); - }) - .collect(Collectors.toList()); - } - - private Server openApiServer(String url, String description) { - return new Server().url(url).description(description); - } - private Components components() { - return new Components().addSecuritySchemes(JWT, securityScheme()); + return new Components().addSecuritySchemes("bearer", securityScheme()); } private SecurityScheme securityScheme() { return new SecurityScheme() - .name(JWT) + .name("bearer") .type(SecurityScheme.Type.HTTP) .scheme("bearer") - .bearerFormat(JWT); + .bearerFormat("JWT"); } private String getDescription() { - String activeProfile = getActiveProfile(); return format(""" - AI 컴퓨터공학부 커뮤니티 관리자, AICS-HOME ADMIN API 입니다. + AI 컴퓨터공학부 커뮤니티 인증/인가, AICS-HOME AUTH 입니다. 로그인 API를 통해 액세스 토큰을 발급 받고 헤더에 값을 넣어주세요. 별다른 절차 없이 API를 사용하실 수 있습니다. - 사용자 API 문서는 다음 링크에서 확인하실 수 있습니다. -
      -
    • AICS-HOME API : %s
    • -
    - - 관리자 API 문서는 다음 링크에서 확인하실 수 있습니다.
      -
    • AICS-HOME ADMIN API : %s
    • -
    +
  • 사용자 API 문서: %s

  • +
  • 관리자 API 문서: %s

  • +
  • 인증/인가 API 문서: %s
  • + """, - getApiSwaggerByProfile(activeProfile), - getApiSwaggerByProfile(activeProfile), - getAdminSwaggerByProfile(activeProfile), - getAdminSwaggerByProfile(activeProfile) - ); - } - - private String getApiSwaggerByProfile(String profile) { - String url = (String) profileServerConfig.get(profile).get("url"); - return url + ":" + apiPort + "/swagger-ui/index.html"; - } - - private String getAdminSwaggerByProfile(String profile) { - String url = (String) profileServerConfig.get(profile).get("url"); - return url + ":" + adminApiPort + "/swagger-ui/index.html"; - } - - private String getActiveProfile() { - return Arrays.stream(environment.getActiveProfiles()) - .findFirst() - .orElse("local"); + apiDocsUrl, apiDocsUrl, + adminDocsUrl, adminDocsUrl, + authDocsUrl, authDocsUrl); } } diff --git a/aics-auth/src/main/resources/application-dev.yml b/aics-auth/src/main/resources/application-dev.yml index 92a38d5a..536196ca 100644 --- a/aics-auth/src/main/resources/application-dev.yml +++ b/aics-auth/src/main/resources/application-dev.yml @@ -6,10 +6,4 @@ spring: redis: host: ${REDIS_HOST:redis} port: ${REDIS_PORT:6379} - password: ${REDIS_PASSWORD} - -profiles: - current-ip: ${CURRENT_IP} - api-port: ${API_SERVER_PORT:8080} - admin-api-port: ${ADMIN_API_SERVER_PORT:8081} - auth-api-port: ${AUTH_API_SERVER_PORT:8082} \ No newline at end of file + password: ${REDIS_PASSWORD} \ No newline at end of file diff --git a/aics-auth/src/main/resources/application-local.yml b/aics-auth/src/main/resources/application-local.yml index 9cd9787d..7797cddf 100644 --- a/aics-auth/src/main/resources/application-local.yml +++ b/aics-auth/src/main/resources/application-local.yml @@ -1,10 +1,4 @@ spring: jpa: hibernate: - ddl-auto: update - -profiles: - current-ip: ${CURRENT_IP:localhost} - api-port: ${API_SERVER_PORT:8080} - admin-api-port: ${ADMIN_API_SERVER_PORT:8081} - auth-api-port: ${AUTH_API_SERVER_PORT:8082} \ No newline at end of file + ddl-auto: update \ No newline at end of file diff --git a/aics-auth/src/main/resources/application.yml b/aics-auth/src/main/resources/application.yml index a81d89cc..ae7f80f2 100644 --- a/aics-auth/src/main/resources/application.yml +++ b/aics-auth/src/main/resources/application.yml @@ -50,4 +50,7 @@ jwt: issuer: ${JWT_ISSUER} secret_key: ${JWT_SECRET_KEY} - +docs: + admin-docs-url: ${ADMIN_DOCS_URL} + api-docs-url: ${API_DOCS_URL} + auth-docs-url: ${AUTH_DOCS_URL} From 9e462e3af58709208a61ad7e7b6c41f0eb6bbbc7 Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 05:05:08 +0900 Subject: [PATCH 21/26] =?UTF-8?q?chore:=20CORS=20=EB=B2=84=EA=B7=B8=20?= =?UTF-8?q?=ED=94=BD=EC=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../developers/common/config/SecurityConfig.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/aics-common/src/main/java/kgu/developers/common/config/SecurityConfig.java b/aics-common/src/main/java/kgu/developers/common/config/SecurityConfig.java index d134dcdd..85ce47ca 100644 --- a/aics-common/src/main/java/kgu/developers/common/config/SecurityConfig.java +++ b/aics-common/src/main/java/kgu/developers/common/config/SecurityConfig.java @@ -3,6 +3,7 @@ import java.util.Arrays; import java.util.Collections; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.authentication.AuthenticationManager; @@ -30,6 +31,15 @@ public class SecurityConfig { private final TokenProvider tokenProvider; + @Value("${docs.api-docs-url}") + private String apiDocsUrl; + + @Value("${docs.admin-docs-url}") + private String adminDocsUrl; + + @Value("${docs.auth-docs-url}") + private String authDocsUrl; + @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { return http @@ -91,7 +101,11 @@ CorsConfigurationSource corsConfigurationSource() { config.setAllowedOriginPatterns(Arrays.asList( "http://localhost:3000", "http://localhost:8080", - "http://localhost:8081" + "http://localhost:8081", + "http://localhost:8082", + apiDocsUrl, + adminDocsUrl, + authDocsUrl )); config.setAllowCredentials(true); return config; From e43198f88ec2913b9c579bd50ccce61784ff28ba Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 05:11:11 +0900 Subject: [PATCH 22/26] =?UTF-8?q?chore:=20CORS=20=EB=B2=84=EA=B7=B8=20?= =?UTF-8?q?=ED=94=BD=EC=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../developers/common/config/SecurityConfig.java | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/aics-common/src/main/java/kgu/developers/common/config/SecurityConfig.java b/aics-common/src/main/java/kgu/developers/common/config/SecurityConfig.java index 85ce47ca..ae59fa4a 100644 --- a/aics-common/src/main/java/kgu/developers/common/config/SecurityConfig.java +++ b/aics-common/src/main/java/kgu/developers/common/config/SecurityConfig.java @@ -31,15 +31,6 @@ public class SecurityConfig { private final TokenProvider tokenProvider; - @Value("${docs.api-docs-url}") - private String apiDocsUrl; - - @Value("${docs.admin-docs-url}") - private String adminDocsUrl; - - @Value("${docs.auth-docs-url}") - private String authDocsUrl; - @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { return http @@ -103,9 +94,9 @@ CorsConfigurationSource corsConfigurationSource() { "http://localhost:8080", "http://localhost:8081", "http://localhost:8082", - apiDocsUrl, - adminDocsUrl, - authDocsUrl + "https://aics-api.ummdev.com", + "https://aics-admin.ummdev.com", + "https://aics-auth.ummdev.com" )); config.setAllowCredentials(true); return config; From 8598e31ba20974f9dde407128cfc11c78c75f4dc Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 05:17:21 +0900 Subject: [PATCH 23/26] =?UTF-8?q?chore:=20https=20-->=20http=EB=A1=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/kgu/developers/common/config/SecurityConfig.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/aics-common/src/main/java/kgu/developers/common/config/SecurityConfig.java b/aics-common/src/main/java/kgu/developers/common/config/SecurityConfig.java index ae59fa4a..333d6a50 100644 --- a/aics-common/src/main/java/kgu/developers/common/config/SecurityConfig.java +++ b/aics-common/src/main/java/kgu/developers/common/config/SecurityConfig.java @@ -94,9 +94,9 @@ CorsConfigurationSource corsConfigurationSource() { "http://localhost:8080", "http://localhost:8081", "http://localhost:8082", - "https://aics-api.ummdev.com", - "https://aics-admin.ummdev.com", - "https://aics-auth.ummdev.com" + "http://aics-api.ummdev.com", + "http://aics-admin.ummdev.com", + "http://aics-auth.ummdev.com" )); config.setAllowCredentials(true); return config; From 568255cc6ab3019e888706d26011244fa2a25c5b Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 05:42:08 +0900 Subject: [PATCH 24/26] =?UTF-8?q?chore:=20swagger=20generated=20url=20?= =?UTF-8?q?=ED=94=BD=EC=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/config/SwaggerConfig.java | 25 +++++++++++++++++++ .../developers/api/config/SwaggerConfig.java | 25 +++++++++++++++++++ .../developers/auth/config/SwaggerConfig.java | 25 +++++++++++++++++++ 3 files changed, 75 insertions(+) diff --git a/aics-admin/src/main/java/kgu/developers/admin/config/SwaggerConfig.java b/aics-admin/src/main/java/kgu/developers/admin/config/SwaggerConfig.java index dba69d43..576833cf 100644 --- a/aics-admin/src/main/java/kgu/developers/admin/config/SwaggerConfig.java +++ b/aics-admin/src/main/java/kgu/developers/admin/config/SwaggerConfig.java @@ -2,15 +2,21 @@ import static java.lang.String.format; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityScheme; +import io.swagger.v3.oas.models.servers.Server; import lombok.RequiredArgsConstructor; @Configuration @@ -26,14 +32,33 @@ public class SwaggerConfig { @Value("${docs.auth-docs-url}") private String authDocsUrl; + private final Environment environment; + + private static final Map PROFILE_SERVER_URL_MAP = Map.of( + "local", "http://localhost:8081", + "development", "https://aics-admin.ummdev.com" + ); + @Bean public OpenAPI openAPI() { return new OpenAPI() .info(apiInfo()) .addSecurityItem(securityRequirement()) + .servers(initializeServers()) .components(components()); } + private List initializeServers() { + return PROFILE_SERVER_URL_MAP.entrySet().stream() + .filter(entry -> environment.matchesProfiles(entry.getKey())) + .map(entry -> openApiServer(entry.getValue(), "AICS-HOME ADMIN " + entry.getKey().toUpperCase())) + .collect(Collectors.toList()); + } + + private Server openApiServer(String url, String description) { + return new Server().url(url).description(description); + } + private SecurityRequirement securityRequirement() { return new SecurityRequirement().addList("bearer"); } diff --git a/aics-api/src/main/java/kgu/developers/api/config/SwaggerConfig.java b/aics-api/src/main/java/kgu/developers/api/config/SwaggerConfig.java index 912ddf86..04a9b8fb 100644 --- a/aics-api/src/main/java/kgu/developers/api/config/SwaggerConfig.java +++ b/aics-api/src/main/java/kgu/developers/api/config/SwaggerConfig.java @@ -2,15 +2,21 @@ import static java.lang.String.format; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityScheme; +import io.swagger.v3.oas.models.servers.Server; import lombok.RequiredArgsConstructor; @Configuration @@ -26,14 +32,33 @@ public class SwaggerConfig { @Value("${docs.auth-docs-url}") private String authDocsUrl; + private final Environment environment; + + private static final Map PROFILE_SERVER_URL_MAP = Map.of( + "local", "http://localhost:8080", + "development", "https://aics-api.ummdev.com" + ); + @Bean public OpenAPI openAPI() { return new OpenAPI() .info(apiInfo()) .addSecurityItem(securityRequirement()) + .servers(initializeServers()) .components(components()); } + private List initializeServers() { + return PROFILE_SERVER_URL_MAP.entrySet().stream() + .filter(entry -> environment.matchesProfiles(entry.getKey())) + .map(entry -> openApiServer(entry.getValue(), "AICS-HOME API " + entry.getKey().toUpperCase())) + .collect(Collectors.toList()); + } + + private Server openApiServer(String url, String description) { + return new Server().url(url).description(description); + } + private SecurityRequirement securityRequirement() { return new SecurityRequirement().addList("bearer"); } diff --git a/aics-auth/src/main/java/kgu/developers/auth/config/SwaggerConfig.java b/aics-auth/src/main/java/kgu/developers/auth/config/SwaggerConfig.java index 1ddf820f..f85673d9 100644 --- a/aics-auth/src/main/java/kgu/developers/auth/config/SwaggerConfig.java +++ b/aics-auth/src/main/java/kgu/developers/auth/config/SwaggerConfig.java @@ -2,15 +2,21 @@ import static java.lang.String.format; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityScheme; +import io.swagger.v3.oas.models.servers.Server; import lombok.RequiredArgsConstructor; @Configuration @@ -26,14 +32,33 @@ public class SwaggerConfig { @Value("${docs.auth-docs-url}") private String authDocsUrl; + private final Environment environment; + + private static final Map PROFILE_SERVER_URL_MAP = Map.of( + "local", "http://localhost:8082", + "development", "https://aics-auth.ummdev.com" + ); + @Bean public OpenAPI openAPI() { return new OpenAPI() .info(apiInfo()) .addSecurityItem(securityRequirement()) + .servers(initializeServers()) .components(components()); } + private List initializeServers() { + return PROFILE_SERVER_URL_MAP.entrySet().stream() + .filter(entry -> environment.matchesProfiles(entry.getKey())) + .map(entry -> openApiServer(entry.getValue(), "AICS-HOME AUTH " + entry.getKey().toUpperCase())) + .collect(Collectors.toList()); + } + + private Server openApiServer(String url, String description) { + return new Server().url(url).description(description); + } + private SecurityRequirement securityRequirement() { return new SecurityRequirement().addList("bearer"); } From 6171aee8bf1809fddcb9b116c6a19b01d787f14c Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 06:02:42 +0900 Subject: [PATCH 25/26] =?UTF-8?q?chore:=20=ED=94=84=EB=A1=9C=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=EC=97=90=20=EB=94=B0=EB=9D=BC=20generated=20url=20?= =?UTF-8?q?=EB=8F=99=EC=A0=81=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/config/SwaggerConfig.java | 22 +++++++------------ .../developers/api/config/SwaggerConfig.java | 20 ++++++----------- .../developers/auth/config/SwaggerConfig.java | 22 +++++++------------ docker/development/docker-compose.yml | 6 +++++ 4 files changed, 29 insertions(+), 41 deletions(-) diff --git a/aics-admin/src/main/java/kgu/developers/admin/config/SwaggerConfig.java b/aics-admin/src/main/java/kgu/developers/admin/config/SwaggerConfig.java index 576833cf..4f9ea564 100644 --- a/aics-admin/src/main/java/kgu/developers/admin/config/SwaggerConfig.java +++ b/aics-admin/src/main/java/kgu/developers/admin/config/SwaggerConfig.java @@ -1,10 +1,9 @@ -package kgu.developers.api.config; +package kgu.developers.admin.config; import static java.lang.String.format; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; @@ -35,8 +34,8 @@ public class SwaggerConfig { private final Environment environment; private static final Map PROFILE_SERVER_URL_MAP = Map.of( - "local", "http://localhost:8081", - "development", "https://aics-admin.ummdev.com" + "dev", "https://aics-admin.ummdev.com", + "local", "http://localhost:8081" ); @Bean @@ -44,19 +43,14 @@ public OpenAPI openAPI() { return new OpenAPI() .info(apiInfo()) .addSecurityItem(securityRequirement()) - .servers(initializeServers()) - .components(components()); + .components(components()) + .servers(initializeServers()); } private List initializeServers() { - return PROFILE_SERVER_URL_MAP.entrySet().stream() - .filter(entry -> environment.matchesProfiles(entry.getKey())) - .map(entry -> openApiServer(entry.getValue(), "AICS-HOME ADMIN " + entry.getKey().toUpperCase())) - .collect(Collectors.toList()); - } - - private Server openApiServer(String url, String description) { - return new Server().url(url).description(description); + String activeProfile = environment.getActiveProfiles()[0]; + String serverUrl = PROFILE_SERVER_URL_MAP.getOrDefault(activeProfile, "http://localhost:8081"); + return List.of(new Server().url(serverUrl).description("AICS-HOME ADMIN (" + activeProfile + ")")); } private SecurityRequirement securityRequirement() { diff --git a/aics-api/src/main/java/kgu/developers/api/config/SwaggerConfig.java b/aics-api/src/main/java/kgu/developers/api/config/SwaggerConfig.java index 04a9b8fb..2e2674c9 100644 --- a/aics-api/src/main/java/kgu/developers/api/config/SwaggerConfig.java +++ b/aics-api/src/main/java/kgu/developers/api/config/SwaggerConfig.java @@ -4,7 +4,6 @@ import java.util.List; import java.util.Map; -import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; @@ -35,8 +34,8 @@ public class SwaggerConfig { private final Environment environment; private static final Map PROFILE_SERVER_URL_MAP = Map.of( - "local", "http://localhost:8080", - "development", "https://aics-api.ummdev.com" + "dev", "https://aics-api.ummdev.com", + "local", "http://localhost:8080" ); @Bean @@ -44,19 +43,14 @@ public OpenAPI openAPI() { return new OpenAPI() .info(apiInfo()) .addSecurityItem(securityRequirement()) - .servers(initializeServers()) - .components(components()); + .components(components()) + .servers(initializeServers()); } private List initializeServers() { - return PROFILE_SERVER_URL_MAP.entrySet().stream() - .filter(entry -> environment.matchesProfiles(entry.getKey())) - .map(entry -> openApiServer(entry.getValue(), "AICS-HOME API " + entry.getKey().toUpperCase())) - .collect(Collectors.toList()); - } - - private Server openApiServer(String url, String description) { - return new Server().url(url).description(description); + String activeProfile = environment.getActiveProfiles()[0]; + String serverUrl = PROFILE_SERVER_URL_MAP.getOrDefault(activeProfile, "http://localhost:8080"); + return List.of(new Server().url(serverUrl).description("AICS-HOME API (" + activeProfile + ")")); } private SecurityRequirement securityRequirement() { diff --git a/aics-auth/src/main/java/kgu/developers/auth/config/SwaggerConfig.java b/aics-auth/src/main/java/kgu/developers/auth/config/SwaggerConfig.java index f85673d9..581b4632 100644 --- a/aics-auth/src/main/java/kgu/developers/auth/config/SwaggerConfig.java +++ b/aics-auth/src/main/java/kgu/developers/auth/config/SwaggerConfig.java @@ -1,10 +1,9 @@ -package kgu.developers.api.config; +package kgu.developers.auth.config; import static java.lang.String.format; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; @@ -35,8 +34,8 @@ public class SwaggerConfig { private final Environment environment; private static final Map PROFILE_SERVER_URL_MAP = Map.of( - "local", "http://localhost:8082", - "development", "https://aics-auth.ummdev.com" + "dev", "https://aics-auth.ummdev.com", + "local", "http://localhost:8082" ); @Bean @@ -44,19 +43,14 @@ public OpenAPI openAPI() { return new OpenAPI() .info(apiInfo()) .addSecurityItem(securityRequirement()) - .servers(initializeServers()) - .components(components()); + .components(components()) + .servers(initializeServers()); } private List initializeServers() { - return PROFILE_SERVER_URL_MAP.entrySet().stream() - .filter(entry -> environment.matchesProfiles(entry.getKey())) - .map(entry -> openApiServer(entry.getValue(), "AICS-HOME AUTH " + entry.getKey().toUpperCase())) - .collect(Collectors.toList()); - } - - private Server openApiServer(String url, String description) { - return new Server().url(url).description(description); + String activeProfile = environment.getActiveProfiles()[0]; + String serverUrl = PROFILE_SERVER_URL_MAP.getOrDefault(activeProfile, "http://localhost:8082"); + return List.of(new Server().url(serverUrl).description("AICS-HOME AUTH (" + activeProfile + ")")); } private SecurityRequirement securityRequirement() { diff --git a/docker/development/docker-compose.yml b/docker/development/docker-compose.yml index 168708ee..66f97b2d 100644 --- a/docker/development/docker-compose.yml +++ b/docker/development/docker-compose.yml @@ -8,6 +8,8 @@ services: - "${AICS_API_PORT}:8080" env_file: - .env + environment: + - SPRING_PROFILES_ACTIVE=dev depends_on: - postgres - redis @@ -21,6 +23,8 @@ services: - "${AICS_ADMIN_PORT}:8081" env_file: - .env + environment: + - SPRING_PROFILES_ACTIVE=dev depends_on: - postgres - redis @@ -34,6 +38,8 @@ services: - "${AICS_AUTH_PORT}:8082" env_file: - .env + environment: + - SPRING_PROFILES_ACTIVE=dev depends_on: - postgres - redis From a499afd21711dcedf2e854197dbb2c7965d1bc54 Mon Sep 17 00:00:00 2001 From: leehaneum Date: Thu, 6 Feb 2025 06:09:23 +0900 Subject: [PATCH 26/26] =?UTF-8?q?chore:=20SecurityConfig=20CORS=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/kgu/developers/common/config/SecurityConfig.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/aics-common/src/main/java/kgu/developers/common/config/SecurityConfig.java b/aics-common/src/main/java/kgu/developers/common/config/SecurityConfig.java index 333d6a50..ae59fa4a 100644 --- a/aics-common/src/main/java/kgu/developers/common/config/SecurityConfig.java +++ b/aics-common/src/main/java/kgu/developers/common/config/SecurityConfig.java @@ -94,9 +94,9 @@ CorsConfigurationSource corsConfigurationSource() { "http://localhost:8080", "http://localhost:8081", "http://localhost:8082", - "http://aics-api.ummdev.com", - "http://aics-admin.ummdev.com", - "http://aics-auth.ummdev.com" + "https://aics-api.ummdev.com", + "https://aics-admin.ummdev.com", + "https://aics-auth.ummdev.com" )); config.setAllowCredentials(true); return config;