From 3ff4278217f7f73c5bf1ec55b5612571f491298f Mon Sep 17 00:00:00 2001 From: thedrewen Date: Mon, 3 Nov 2025 18:05:47 +0100 Subject: [PATCH] feat(deploy): add GitHub Actions workflow for deployment to VPS --- .github/workflows/deploy.yml | 52 ++++++++++++++++++++++++++++++++++++ Dockerfile | 2 ++ 2 files changed, 54 insertions(+) create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..a7a2e63 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,52 @@ +# This is a basic workflow to help you get started with Actions +name: Deploy + +# Controls when the workflow will run +on: + push: + tags: + - '*' + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v4 + + - name: Setup SSH Agent + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} + + - name: Add VPS to known_hosts + run: | + ssh-keyscan -p ${{ secrets.VPS_PORT }} -H ${{ secrets.VPS_HOST }} >> ~/.ssh/known_hosts + + - name: Deploy to VPS + run: | + ssh -p ${{ secrets.VPS_PORT }} ${{ secrets.VPS_USER }}@${{ secrets.VPS_HOST }} " + cd /home/${{ secrets.VPS_USER }}/protojx/protojx-manager && + git pull && + + # Stop and remove old container if exists + docker stop protojx_manager 2>/dev/null || true && + docker rm protojx_manager 2>/dev/null || true && + + # Build new image + docker buildx build -t protojx_manager . && + + # Run new container + docker run -d \ + --name protojx_manager \ + --restart unless-stopped \ + --network shared \ + protojx_manager + " \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index ba14e02..86cd56b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,4 +7,6 @@ COPY . . RUN apt-get update && apt-get install -y iputils-ping RUN npm i +RUN npm register + CMD [ "npm", "run", "start" ] \ No newline at end of file