Thanks to visit codestin.com
Credit goes to github.com

Skip to content

A quick guide to auto-deploy your Node/Next.js app on a **Google Cloud VM** using SSH and GitHub Actions.

Notifications You must be signed in to change notification settings

nios-x/cdcd-pipeline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 

Repository files navigation

πŸš€ Deploy Next.js App to GCP VM via GitHub Actions

A quick guide to auto-deploy your Node/Next.js app on a Google Cloud VM using SSH and GitHub Actions.


🧩 1. Setup VM + SSH

# Generate SSH key
ssh-keygen -t rsa -b 4096 -f github_deploy_key

# Add public key to VM metadata or ~/.ssh/authorized_keys
# (Ensure username matches your SSH user)

# Connect to VM
ssh -i github_deploy_key your_user@your_vm_ip

sudo apt update && sudo apt install nginx -y
sudo vi /etc/nginx/sites-available/myapp

server {
    listen 80;
    server_name _;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}


sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
name: πŸš€ Deploy to GCP VM
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: |
          npm ci
          npm run build
      - name: πŸš€ Deploy
        env:
          SSH_HOST: ${{ secrets.SSH_HOST }}
          SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
        run: |
          echo "$SSH_PRIVATE_KEY" > key.pem
          chmod 600 key.pem
          ssh -o StrictHostKeyChecking=no -i key.pem ${{ secrets.SERVER_USER }}@$SSH_HOST << 'EOF'
            cd ~/dinka
            git pull origin main
            npm ci
            npm run build
            pm2 restart next-js1
          EOF
          rm -f key.pem

About

A quick guide to auto-deploy your Node/Next.js app on a **Google Cloud VM** using SSH and GitHub Actions.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published