একটি 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-এ সংযোগ করুন:
ধাপ ১: আপনার 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 অ্যাপ্লিকেশনটি এখন আপনার ডোমেইন নামের মাধ্যমে অ্যাক্সেসযোগ্য হওয়া উচিত!