একটি VPS-এ Next.js অ্যাপ কীভাবে ডিপ্লয় করবেন

একটি VPS-এ Next.js অ্যাপ্লিকেশন মোতায়েনের একটি বিস্তৃত গাইড, যা সার্ভার সেটআপ, Node.js ইনস্টলেশন (NVM-এর মাধ্যমে), অ্যাপ্লিকেশন ক্লোনিং, বিল্ডিং, PM2 ব্যবহার করে প্রসেস ম্যানেজমেন্ট, Nginx-কে রিভার্স প্রক্সি হিসেবে কনফিগার করা এবং SSL সেটআপ করার বিষয়গুলো অন্তর্ভুক্ত করে।

Intermediate
একটি Virtual Private Server (VPS)-এ Next.js অ্যাপ্লিকেশন ডিপ্লয় করতে সার্ভার পরিবেশ সেটআপ করা থেকে রিভার্স প্রক্সি এবং প্রসেস ম্যানেজার কনফিগার করা পর্যন্ত বেশ কয়েকটি গুরুত্বপূর্ণ ধাপ জড়িত। এই গাইডটি উবুন্টু-ভিত্তিক VPS, রিভার্স প্রক্সি হিসেবে Nginx, এবং প্রসেস ম্যানেজমেন্টের জন্য PM2 ব্যবহারের উপর ফোকাস করে, সাথে SSL সার্টিফিকেটের জন্য Certbot। প্রয়োজনীয়তা: উবুন্টু চালিত একটি VPS (যেমন, 20.04, 22.04, বা 24.04)। একটি নিবন্ধিত ডোমেইন নাম যার DNS রেকর্ডগুলো আপনার VPS-এর IP ঠিকানায় নির্দেশ করছে। Linux কমান্ড লাইনের মৌলিক জ্ঞান। আপনার Next.js অ্যাপ্লিকেশন প্রোডাকশনের জন্য প্রস্তুত (Git রিপোজিটরিতে পুশ করা থাকলে আদর্শ)।
ধাপ ১: আপনার VPS-এ সংযোগ করুন এবং সিস্টেম আপডেট করুন SSH-এর মাধ্যমে সংযোগ করুন: আপনার টার্মিনাল খুলুন এবং SSH ব্যবহার করে আপনার VPS-এ সংযোগ করুন: bash ssh your_username@your_vps_ip your_vps_ip-এর পরিবর্তে আপনার VPS-এর প্রকৃত IP ঠিকানা ব্যবহার করুন। সিস্টেম প্যাকেজ আপডেট এবং আপগ্রেড করুন: নিরাপত্তার এবং স্থিতিশীলতার জন্য আপনার সার্ভারের প্যাকেজগুলো আপ-টু-ডেট রাখা অত্যন্ত গুরুত্বপূর্ণ। bash sudo apt update && sudo apt upgrade -y ধাপ ২: Node.js এবং npm/yarn ইনস্টল করুন Next.js-এর জন্য Node.js প্রয়োজন। আপনি Node Version Manager (NVM) ব্যবহার করে নমনীয় সংস্করণ ব্যবস্থাপনার জন্য Node.js ইনস্টল করতে পারেন, অথবা সরাসরি Ubuntu-এর রিপোজিটরি থেকে ইনস্টল করতে পারেন। সাধারণত NVM ব্যবহার করার পরামর্শ দেওয়া হয়। বিকল্প A: NVM ব্যবহার করে Node.js ইনস্টল করুন (প্রস্তাবিত) 1. NVM ইনস্টল করুন: bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash (দ্রষ্টব্য: v0.39.7 সংস্করণটি একটি অনুসন্ধানের ফলাফল থেকে নেওয়া হয়েছে। আপনি সর্বশেষ সংস্করণের জন্য NVM-এর GitHub পৃষ্ঠা দেখতে পারেন।) 2. NVM সক্রিয় করুন: আপনাকে আপনার টার্মিনাল বন্ধ করে পুনরায় খুলতে হতে পারে, অথবা আপনার শেলের উপর নির্ভর করে নিম্নলিখিত কমান্ডগুলির একটি চালাতে হতে পারে: ```bash source ~/.bashrc``` # অথবা source ~/.profile অথবা source ~/.zshrc 3. Node.js LTS সংস্করণ ইনস্টল করুন: bash nvm install --lts বিকল্পভাবে, একটি নির্দিষ্ট সংস্করণ ইনস্টল করুন, যেমন, nvm install 20। 4. ইনস্টলেশন যাচাই করুন: bash node -v npm -v এটি ইনস্টল করা Node.js এবং npm সংস্করণগুলি দেখাবে। বিকল্প B: উবুন্টু রিপোজিটরি থেকে Node.js এবং npm ইনস্টল করুন 1. Node.js ইনস্টল করুন: ```bash sudo apt install nodejs -y``` 2. npm ইনস্টল করুন: bash sudo apt install npm -y 3. ইনস্টলেশন যাচাই করুন: bash node -v npm -v ধাপ ৩: আপনার Next.js অ্যাপ্লিকেশন ডিপ্লয় করুন আপনার রেপোজিটরি ক্লোন করুন: একটি উপযুক্ত ডিরেক্টরিতে (যেমন, /var/www/) নেভিগেট করুন এবং আপনার Git রেপোজিটরি থেকে আপনার Next.js প্রকল্পটি ক্লোন করুন। bash sudo mkdir -p /var/www/your-app-name sudo chown -R your_username:your_username /var/www/your-app-name cd /var/www/your-app-name git clone https://github.com/your-username/your-nextjs-app.git . যদি আপনার রিপোজিটরি ব্যক্তিগত হয়, নিশ্চিত করুন যে আপনি SSH কী সেট আপ করেছেন বা HTTPS-এর মাধ্যমে ক্লোনের জন্য একটি ব্যক্তিগত অ্যাক্সেস টোকেন ব্যবহার করছেন। ডিপেনডেন্সি ইনস্টল এবং বিল্ড করুন: আপনার প্রকল্পের ডিপেনডেন্সি ইনস্টল করুন এবং তারপর প্রোডাকশনের জন্য Next.js অ্যাপ্লিকেশনটি বিল্ড করুন। ```bash npm install # অথবা yarn install npm run build # অথবা yarn build``` `npm run build` কমান্ডটি আপনার অ্যাপ্লিকেশনের একটি অপ্টিমাইজড প্রোডাকশন বিল্ড তৈরি করে। ধাপ ৪: PM2 (প্রসেস ম্যানেজার) ইনস্টল এবং কনফিগার করুন PM2 হল Node.js অ্যাপ্লিকেশনগুলির জন্য একটি প্রোডাকশন প্রসেস ম্যানেজার যা সেগুলিকে অনির্দিষ্টকালের জন্য সক্রিয় রাখে এবং সহজ ব্যবস্থাপনা সক্ষম করে।
npm install -g pm2 
PM2 দিয়ে আপনার Next.js অ্যাপ্লিকেশন শুরু করুন। Next.js অ্যাপ্লিকেশনগুলো সাধারণত ডিফল্টভাবে localhost:3000 এ চলে।
pm2 start npm --name "my-nextjs-app" --start 
আপনার অ্যাপ্লিকেশনের জন্য একটি বর্ণনামূলক নাম ব্যবহার করে "my-nextjs-app" প্রতিস্থাপন করুন। সার্ভার রিবুট হলে PM2 যেন আপনার অ্যাপ্লিকেশন রিস্টার্ট করে তা নিশ্চিত করতে:
pm2 startup systemd pm2 save
`
sudo apt install nginx -y 
আপনার সাইটের জন্য একটি নতুন Nginx কনফিগারেশন ফাইল তৈরি করুন। your_domain.com-এর পরিবর্তে আপনার প্রকৃত ডোমেইন ব্যবহার করুন।
sudo nano /etc/nginx/sites-available/your_domain.com
নিম্নলিখিত কনফিগারেশন যোগ করুন:
server {
 listen 80;
 server_name your_domain.com www.your_domain.com;

 location / {  proxy_pass http://localhost:3000; # Next.js ডিফল্ট পোর্ট
 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;  }
} 
সাইটটি সক্ষম করতে sites-enabled-এ একটি সিমলিংক তৈরি করুন এবং Nginx কনফিগারেশন পরীক্ষা করুন:`sudo` ```ln -s /etc/nginx/sites-available/your_domain.com /etc/nginx/sites-enabled/``` sudo nginx -t
যদি পরীক্ষা সফল হয়, Nginx পুনরায় চালু করুন:
sudo systemctl restart nginx
` sudo ufw allow http sudo ufw allow https ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `
sudo ufw allow 'Nginx Full'
sudo ufw enable 
ধাপ ৭: (ঐচ্ছিক) Certbot (Let's Encrypt) দিয়ে SSL সেট আপ করুন আপনার অ্যাপ্লিকেশন HTTPS দিয়ে সুরক্ষিত করতে Certbot ব্যবহার করে Let's Encrypt থেকে SSL সার্টিফিকেট সংগ্রহ ও কনফিগার করুন।
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain.com -d www.your_domain.com 

নির্দেশনাগুলি অনুসরণ করুন। Certbot স্বয়ংক্রিয়ভাবে আপনার Nginx কনফিগারেশন পরিবর্তন করবে এবং স্বয়ংক্রিয় সার্টিফিকেট নবায়ন সেট আপ করবে। ধাপ ৮: আপনার ডিপ্লয়মেন্ট যাচাই করুন আপনার Next.js অ্যাপ্লিকেশনটি এখন আপনার ডোমেইন নামের মাধ্যমে (অথবা আপনি যদি ডোমেইন সেটআপ এড়িয়ে গিয়ে থাকেন তবে VPS আইপি ঠিকানা) HTTPS-এ অ্যাক্সেসযোগ্য হওয়া উচিত। আপনার ওয়েব ব্রাউজার খুলুন এবং https://your_domain.com-এ যান।(ঐচ্ছিক) CI/CD সেট আপ করুন স্বয়ংক্রিয় ডিপ্লয়মেন্টের জন্য, GitHub Actions, GitLab CI, বা Jenkins-এর মতো টুল ব্যবহার করে একটি Continuous Integration/Continuous Deployment (CI/CD) পাইপলাইন সেট আপ করার কথা ভাবুন। এটি আপনার রিপোজিটরিতে নতুন কোড পুশ করার সময় VPS-এ আপনার অ্যাপ্লিকেশন ক্লোন করা, ইনস্টল করা, বিল্ড করা এবং রিস্টার্ট করার ধাপগুলো স্বয়ংক্রিয় করে দেবে।
আপনার Next.js অ্যাপ্লিকেশনটি এখন আপনার ডোমেইন নামের মাধ্যমে অ্যাক্সেসযোগ্য হওয়া উচিত!