diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
new file mode 100644
index 0000000..9707c25
--- /dev/null
+++ b/.github/workflows/main.yml
@@ -0,0 +1,70 @@
+name: Passionate Pro Deployment
+
+on:
+  push:
+    branches: [ "main" ]
+
+permissions:
+  contents: read
+
+jobs:
+  deploy:
+    name: Deploy
+    runs-on: ubuntu-latest
+    env:
+      AWS_REGION: ap-northeast-2
+	    working-directory: ./pro
+     
+    steps:
+    - name: Checkout
+      uses: actions/checkout@v3
+
+    - name: Setup Java JDK
+      uses: actions/setup-java@v4.2.1
+      with:
+        java-version: '17'
+        distribution: 'temurin'
+          
+    - name: make application.yml
+      if: true
+      run: |
+        touch ./src/main/resources/application.yml
+        echo "${{ secrets.PROPERTIES }}" > ./src/main/resources/application.yml
+      shell: bash
+      working-directory: ${{ env.working-directory }}
+            
+    - name: Gradle execute permission for gradlew
+      run: chmod +x gradlew
+      shell: bash
+      working-directory: ${{ env.working-directory }}
+          
+    - name: Build with Gradle
+      run: ./gradlew bootjar
+      shell: bash
+      working-directory: ${{ env.working-directory }}
+      
+    - name: DockerHub Login
+      uses: docker/login-action@v2
+      with:
+        username: ${{ secrets.DOCKERHUB_USERNAME }}
+        password: ${{ secrets.DOCKERHUB_PASSWORD }}
+        
+    - name: Docker Image Build
+      run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.PROJECT_NAME }} .
+      
+    - name: DockerHub Push
+      run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.PROJECT_NAME }}
+      
+    - name: Application Run
+      uses: appleboy/ssh-action@v1.0.3
+      with:
+        host: ${{ secrets.EC2_HOST }}
+        username: ${{ secrets.EC2_USERNAME }}
+        key: ${{ secrets.EC2_KEY }}
+
+        script: |
+          sudo docker kill ${{ secrets.PROJECT_NAME }}
+          sudo docker rm -f ${{ secrets.PROJECT_NAME }}
+          sudo docker rmi ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.PROJECT_NAME }}
+          sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.PROJECT_NAME }}
+          sudo docker run -p 8080:8080 --name ${{ secrets.PROJECT_NAME }}