From 9ddcf07d7c7c199b064b3e8853756d1cbf2e14fb Mon Sep 17 00:00:00 2001 From: rahy2k <107999008+rahy2k@users.noreply.github.com> Date: Wed, 26 Aug 2026 19:47:15 +0530 Subject: [PATCH 1/3] Create package.json --- package.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 package.json diff --git a/package.json b/package.json new file mode 100644 index 000000000..ba9b23156 --- /dev/null +++ b/package.json @@ -0,0 +1,11 @@ +{ + "name": "nodejs-website", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "start": "node index.js" + }, + "dependencies": { + "express": "^4.19.2" + } +} From 48ab3c9a1ed8235f03df58b06a23d559c15262de Mon Sep 17 00:00:00 2001 From: vboxuser Date: Thu, 27 Aug 2026 15:10:24 +0530 Subject: [PATCH 2/3] 1st commit github main --- .github/workflows/deploy.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 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 000000000..03022dd2b --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,26 @@ +name: Deploy Website + +on: + push: + branches: + - main + +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Deploy files + uses: appleboy/ssh-action@v1.2.0 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USER }} + key: ${{ secrets.SERVER_SSH_KEY }} + port: 22 + script: | + sudo rsync -av --delete ./ /var/www/html/ + sudo chown -R www-data:www-data /var/www/html + sudo systemctl restart apache2 From 98a7c98222429ba10dae9fb0d5106b4969aab126 Mon Sep 17 00:00:00 2001 From: vboxuser Date: Thu, 27 Aug 2026 17:17:40 +0530 Subject: [PATCH 3/3] 2nd workflow --- .github/workflows/deploy.yml | 60 +++++++++++++++++++++++++++--------- 1 file changed, 46 insertions(+), 14 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 03022dd2b..19e3ab4ba 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,4 +1,5 @@ -name: Deploy Website +```yaml +name: Deploy Application on: push: @@ -7,20 +8,51 @@ on: jobs: deploy: - runs-on: ubuntu-latest + runs-on: self-hosted steps: - - name: Checkout code + - name: Checkout GitHub repository uses: actions/checkout@v4 - - name: Deploy files - uses: appleboy/ssh-action@v1.2.0 - with: - host: ${{ secrets.SERVER_HOST }} - username: ${{ secrets.SERVER_USER }} - key: ${{ secrets.SERVER_SSH_KEY }} - port: 22 - script: | - sudo rsync -av --delete ./ /var/www/html/ - sudo chown -R www-data:www-data /var/www/html - sudo systemctl restart apache2 + - name: Test SSH connection to Code VM + env: + SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }} + run: | + mkdir -p ~/.ssh + chmod 700 ~/.ssh + + echo "$SSH_PRIVATE_KEY" > ~/.ssh/deploy_key + chmod 600 ~/.ssh/deploy_key + + ssh-keyscan -H 192.168.1.104 >> ~/.ssh/known_hosts + + ssh -i ~/.ssh/deploy_key \ + vboxuser@192.168.1.104 \ + "hostname && echo SSH connection successful" + + - name: Deploy code to Code VM + env: + SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }} + run: | + mkdir -p ~/.ssh + chmod 700 ~/.ssh + + echo "$SSH_PRIVATE_KEY" > ~/.ssh/deploy_key + chmod 600 ~/.ssh/deploy_key + + ssh-keyscan -H 192.168.1.104 >> ~/.ssh/known_hosts + + rsync -avz --delete \ + -e "ssh -i ~/.ssh/deploy_key" \ + ./ \ + vboxuser@192.168.1.104:/opt/my-app/ + + - name: Verify deployment + env: + SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }} + run: | + ssh -i ~/.ssh/deploy_key \ + vboxuser@192.168.1.104 \ + "ls -la /opt/my-app" +``` +