Next.js ডিপ্লয় ডকুমেন্টেশন (Hostinger VPS)

সংক্ষিপ্ত বিবরণ

এই ডকুমেন্টেশনটি Hostinger VPS-এ Next.js অ্যাপ্লিকেশন ডিপ্লয় করার ধাপে ধাপে নির্দেশনা প্রদান করে। এটি naturalsefa.com, tariqul.naturalsefa.com, এবং tariqul.com ডোমেইনগুলোর জন্য Nginx রিভার্স প্রক্সি এবং PM2 প্রসেস ম্যানেজার …


This content originally appeared on DEV Community and was authored by Md Tariqul Islam

সংক্ষিপ্ত বিবরণ

এই ডকুমেন্টেশনটি Hostinger VPS-এ Next.js অ্যাপ্লিকেশন ডিপ্লয় করার ধাপে ধাপে নির্দেশনা প্রদান করে। এটি naturalsefa.com, tariqul.naturalsefa.com, এবং tariqul.com ডোমেইনগুলোর জন্য Nginx রিভার্স প্রক্সি এবং PM2 প্রসেস ম্যানেজার ব্যবহার করে। গিটহাব অ্যাকশনের মাধ্যমে স্বয়ংক্রিয় ডিপ্লয়মেন্ট এবং Let’s Encrypt দিয়ে HTTPS সেটআপ অন্তর্ভুক্ত রয়েছে।

প্রয়োজনীয়তা

  • Hostinger VPS: Ubuntu 22.04 বা তার উপরের ভার্সন, SSH অ্যাক্সেস সহ।
  • ডোমেইন: naturalsefa.com, tariqul.naturalsefa.com, এবং tariqul.com, VPS IP-এর সাথে DNS লিঙ্ক করা।
  • গিটহাব রিপোজিটরি: Next.js প্রজেক্ট হোস্ট করা।
  • Environment Variables: Clerk publishable এবং secret key, NEXT_PUBLIC_SERVER_URL।
  • টুলস: SSH ক্লায়েন্ট (PuTTY/Terminal), Git, টেক্সট এডিটর (nano/vim)।
  • প্রি-ইনস্টলড সফটওয়্যার:
    • Node.js (v18.17+)
    • Nginx
    • PM2
    • Certbot (Let’s Encrypt)
  • গিটহাব সিক্রেটস:
    • VPS_IP: VPS-এর পাবলিক IP
    • VPS_USERNAME: VPS-এর ইউজারনেম
    • SSH_PRIVATE_KEY: VPS-এর SSH প্রাইভেট কী
    • SSH_PASSPHRASE: SSH কী-এর পাসফ্রেজ (যদি থাকে)

ধাপসমূহ

ধাপ ১: VPS সেটআপ

  • VPS-এ লগইন:
ssh root@your-vps-ip
  • সিস্টেম আপডেট:
sudo apt update && sudo apt upgrade -y
  • প্রয়োজনীয় সফটওয়্যার ইনস্টল:

    • Node.js:
    curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
    sudo apt-get install -y nodejs
    
    • Nginx:
    sudo apt install nginx -y
    sudo systemctl enable nginx
    
    • PM2:
    sudo npm install -g pm2
    
    • Git:
    sudo apt install git -y
    
    • ফায়ারওয়াল সেটআপ:
    sudo ufw allow 80
    sudo ufw allow 443
    sudo ufw allow 22
    sudo ufw enable
    
  • SSH কী সেটআপ:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
  • প্রাইভেট কী কপি করুন:
cat ~/.ssh/id_rsa
  • গিটহাবে Settings > Secrets > Actions সেকশনে SSH_PRIVATE_KEY যোগ করুন।

ধাপ ২: Next.js প্রজেক্ট ডিপ্লয়

2.1: naturalsefa.com এবং tariqul.naturalsefa.com

  • প্রজেক্ট ক্লোন:
mkdir -p ~/apps/naturalsefa
cd ~/apps/naturalsefa
git clone git@github.com:yourusername/naturalsefa-repo.git .
  • Environment Variables:
nano ~/apps/naturalsefa/.env
CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key
NEXT_PUBLIC_SERVER_URL=https://naturalsefa.com
  • বিল্ড এবং রান:
npm install
npm run build
pm2 start npm --name "naturalsefa-frontend" -- start
pm2 save
pm2 startup

2.2: tariqul.com

  • প্রজেক্ট ক্লোন:
mkdir -p ~/apps/tariqul
cd ~/apps/tariqul
git clone git@github.com:yourusername/tariqul-repo.git .
  • Environment Variables:
nano ~/apps/tariqul/.env
CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key
NEXT_PUBLIC_SERVER_URL=https://tariqul.com
  • বিল্ড এবং রান:
npm install
npm run build
pm2 start npm --name "tariqul-frontend" -- start --port 3001
pm2 save

ধাপ ৩: গিটহাব অ্যাকশন সেটআপ

  • naturalsefa রিপোজিটরির জন্য:
mkdir -p .github/workflows
nano .github/workflows/deploy.yml
name: Deploy Next.js to VPS
on:
  push:
    branches:
      - main
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v3
      - name: Deploy to VPS
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.VPS_IP }}
          username: ${{ secrets.VPS_USERNAME }}
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          passphrase: ${{ secrets.SSH_PASSPHRASE }}
          script: |
            cd ~/apps/naturalsefa
            git pull origin main
            npm install
            npm run build
            pm2 restart naturalsefa-frontend
  • tariqul রিপোজিটরির জন্য:
mkdir -p .github/workflows
nano .github/workflows/deploy.yml
name: Deploy Next.js to VPS
on:
  push:
    branches:
      - main
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v3
      - name: Deploy to VPS
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.VPS_IP }}
          username: ${{ secrets.VPS_USERNAME }}
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          passphrase: ${{ secrets.SSH_PASSPHRASE }}
          script: |
            cd ~/apps/tariqul
            git pull origin main
            npm install
            npm run build
            pm2 restart tariqul-frontend
  • গিটহাব সিক্রেটস:
    • Settings > Secrets > Actions সেকশনে:
    • VPS_IP: 203.0.113.10
    • VPS_USERNAME: root
    • SSH_PRIVATE_KEY: SSH প্রাইভেট কী
    • SSH_PASSPHRASE: পাসফ্রেজ (যদি থাকে)

ধাপ ৪: Nginx কনফিগারেশন

naturalsefa.com এবং tariqul.naturalsefa.com:

sudo nano /etc/nginx/sites-available/naturalsefa.com
server {
    listen 80;
    server_name naturalsefa.com www.naturalsefa.com tariqul.naturalsefa.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name naturalsefa.com;
    ssl_certificate /etc/letsencrypt/live/naturalsefa.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/naturalsefa.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location / {
        proxy_pass http://localhost: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;
    }
}

server {
    listen 443 ssl;
    server_name www.naturalsefa.com;
    ssl_certificate /etc/letsencrypt/live/naturalsefa.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/naturalsefa.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    return 301 https://naturalsefa.com$request_uri;
}

server {
    listen 443 ssl;
    server_name tariqul.naturalsefa.com;
    ssl_certificate /etc/letsencrypt/live/naturalsefa.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/naturalsefa.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location / {
        proxy_pass http://localhost: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;
    }
}

tariqul.com:

sudo nano /etc/nginx/sites-available/tariqul.com
server {
    listen 80;
    server_name tariqul.com www.tariqul.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name tariqul.com;
    ssl_certificate /etc/letsencrypt/live/tariqul.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/tariqul.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location / {
        proxy_pass http://localhost:3001;
        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;
    }
}

server {
    listen 443 ssl;
    server_name www.tariqul.com;
    ssl_certificate /etc/letsencrypt/live/tariqul.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/tariqul.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    return 301 https://tariqul.com$request_uri;
}
  • সাইট এনাবল এবং রিস্টার্ট:
sudo ln -s /etc/nginx/sites-available/naturalsefa.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/tariqul.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

ধাপ ৫: SSL সার্টিফিকেট সেটআপ

  • Certbot ইনস্টল:
sudo apt install certbot python3-certbot-nginx -y
  • SSL সার্টিফিকেট তৈরি:

    • naturalsefa.com:
    sudo certbot --nginx -d naturalsefa.com -d www.naturalsefa.com -d tariqul.naturalsefa.com
    
    • tariqul.com:
    sudo certbot --nginx -d tariqul.com -d www.tariqul.com
    
  • অটো-রিনিউয়াল চেক:

sudo certbot renew --dry-run

ধাপ ৬: টেস্টিং

git add .
git commit -m "Test auto-deploy"
git push origin main
  • গিটহাব Actions ট্যাবে স্ট্যাটাস চেক করুন।
  • VPS-এ ফাইল চেক:
ls -la ~/apps/naturalsefa
ls -la ~/apps/tariqul

সমস্যা সমাধান

  • গিটহাব অ্যাকশন ত্রুটি:
    • Actions ট্যাবে লগ চেক করুন।
  • SSH কী চেক:
ssh -i ~/.ssh/id_rsa your_vps_username@your_vps_ip
  • Nginx ত্রুটি:
sudo tail -f /var/log/nginx/error.log
  • PM2 ত্রুটি:
pm2 logs naturalsefa-frontend
pm2 logs tariqul-frontend

সিকিউরিটি সুপারিশ

  • SSH: Password-এর পরিবর্তে SSH key ব্যবহার করুন।
  • Root লগইন: /etc/ssh/sshd_config-এ PermitRootLogin no সেট করুন।
  • মনিটরিং: UptimeRobot দিয়ে সাইট মনিটর করুন।

রেফারেন্স

  • Next.js ডিপ্লয় গাইড
  • গিটহাব অ্যাকশন ডকুমেন্টেশন
  • Nginx ডকুমেন্টেশন
  • Let’s Encrypt

পরিশিষ্ট

  • তারিখ: ৮ জুলাই, ২০২৫
  • লেখক: Grok 3, xAI
  • যোগাযোগ: প্রশ্ন থাকলে Hostinger সাপোর্ট বা ডেভেলপারের সাথে যোগাযোগ করুন।


This content originally appeared on DEV Community and was authored by Md Tariqul Islam


Print Share Comment Cite Upload Translate Updates
APA

Md Tariqul Islam | Sciencx (2025-07-08T17:28:54+00:00) Next.js ডিপ্লয় ডকুমেন্টেশন (Hostinger VPS). Retrieved from https://www.scien.cx/2025/07/08/next-js-%e0%a6%a1%e0%a6%bf%e0%a6%aa%e0%a7%8d%e0%a6%b2%e0%a6%af%e0%a6%bc-%e0%a6%a1%e0%a6%95%e0%a7%81%e0%a6%ae%e0%a7%87%e0%a6%a8%e0%a7%8d%e0%a6%9f%e0%a7%87%e0%a6%b6%e0%a6%a8-hostinger-vps/

MLA
" » Next.js ডিপ্লয় ডকুমেন্টেশন (Hostinger VPS)." Md Tariqul Islam | Sciencx - Tuesday July 8, 2025, https://www.scien.cx/2025/07/08/next-js-%e0%a6%a1%e0%a6%bf%e0%a6%aa%e0%a7%8d%e0%a6%b2%e0%a6%af%e0%a6%bc-%e0%a6%a1%e0%a6%95%e0%a7%81%e0%a6%ae%e0%a7%87%e0%a6%a8%e0%a7%8d%e0%a6%9f%e0%a7%87%e0%a6%b6%e0%a6%a8-hostinger-vps/
HARVARD
Md Tariqul Islam | Sciencx Tuesday July 8, 2025 » Next.js ডিপ্লয় ডকুমেন্টেশন (Hostinger VPS)., viewed ,<https://www.scien.cx/2025/07/08/next-js-%e0%a6%a1%e0%a6%bf%e0%a6%aa%e0%a7%8d%e0%a6%b2%e0%a6%af%e0%a6%bc-%e0%a6%a1%e0%a6%95%e0%a7%81%e0%a6%ae%e0%a7%87%e0%a6%a8%e0%a7%8d%e0%a6%9f%e0%a7%87%e0%a6%b6%e0%a6%a8-hostinger-vps/>
VANCOUVER
Md Tariqul Islam | Sciencx - » Next.js ডিপ্লয় ডকুমেন্টেশন (Hostinger VPS). [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/07/08/next-js-%e0%a6%a1%e0%a6%bf%e0%a6%aa%e0%a7%8d%e0%a6%b2%e0%a6%af%e0%a6%bc-%e0%a6%a1%e0%a6%95%e0%a7%81%e0%a6%ae%e0%a7%87%e0%a6%a8%e0%a7%8d%e0%a6%9f%e0%a7%87%e0%a6%b6%e0%a6%a8-hostinger-vps/
CHICAGO
" » Next.js ডিপ্লয় ডকুমেন্টেশন (Hostinger VPS)." Md Tariqul Islam | Sciencx - Accessed . https://www.scien.cx/2025/07/08/next-js-%e0%a6%a1%e0%a6%bf%e0%a6%aa%e0%a7%8d%e0%a6%b2%e0%a6%af%e0%a6%bc-%e0%a6%a1%e0%a6%95%e0%a7%81%e0%a6%ae%e0%a7%87%e0%a6%a8%e0%a7%8d%e0%a6%9f%e0%a7%87%e0%a6%b6%e0%a6%a8-hostinger-vps/
IEEE
" » Next.js ডিপ্লয় ডকুমেন্টেশন (Hostinger VPS)." Md Tariqul Islam | Sciencx [Online]. Available: https://www.scien.cx/2025/07/08/next-js-%e0%a6%a1%e0%a6%bf%e0%a6%aa%e0%a7%8d%e0%a6%b2%e0%a6%af%e0%a6%bc-%e0%a6%a1%e0%a6%95%e0%a7%81%e0%a6%ae%e0%a7%87%e0%a6%a8%e0%a7%8d%e0%a6%9f%e0%a7%87%e0%a6%b6%e0%a6%a8-hostinger-vps/. [Accessed: ]
rf:citation
» Next.js ডিপ্লয় ডকুমেন্টেশন (Hostinger VPS) | Md Tariqul Islam | Sciencx | https://www.scien.cx/2025/07/08/next-js-%e0%a6%a1%e0%a6%bf%e0%a6%aa%e0%a7%8d%e0%a6%b2%e0%a6%af%e0%a6%bc-%e0%a6%a1%e0%a6%95%e0%a7%81%e0%a6%ae%e0%a7%87%e0%a6%a8%e0%a7%8d%e0%a6%9f%e0%a7%87%e0%a6%b6%e0%a6%a8-hostinger-vps/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.