Skip to Content

First Deployment

এটি Foundation সেকশনের শেষ page এবং একটি সম্পূর্ণ checklist। আগের page-গুলোতে প্রতিটি বিষয় বিস্তারিত শিখেছেন — এখানে সেগুলো একসাথে কোন ক্রমে করতে হয় তা দেখবেন।

How to Use This Page

এই page-এ প্রতিটি command আবার লেখা হয়নি — কারণ সেগুলো আগের page-গুলোতে ব্যাখ্যাসহ আছে। এখানে শুধু ক্রম এবং যেটি ভুল হলে আটকে যাবেন সেই বিষয়গুলো আছে।

প্রথমবার deploy করছেন? প্রতিটি ধাপের link-এ গিয়ে বিস্তারিত পড়ুন। দ্বিতীয়বার থেকে শুধু এই checklist-টুকুই যথেষ্ট।

The Order That Matters

এই ক্রমটি এলোমেলো নয়। প্রতিটি ধাপ আগেরটির উপর নির্ভরশীল:

Server তৈরি Security (এর আগে কিছু deploy করবেন না) Node.js + Git (এগুলো ছাড়া পরের কিছুই চলবে না) Nginx → SSL GitHub থেকে code আনা .env তৈরি (build-এর আগে) npm run build → PM2 দিয়ে চালু Live

সবচেয়ে common ভুল: .env তৈরি করার আগে npm run build চালানো। Next.js build-এর সময়েই environment variable পড়ে নেয়, তাই পরে .env বানালে build আবার করতে হবে।

The Checklist

Create App Locally and Push to GitHub

আপনার নিজের computer-এ app তৈরি করে GitHub-এ push করুন:

LOCAL — Terminal
npx create-next-app@latest myapp cd myapp git init git add . git commit -m "initial commit" git branch -M main git remote add origin https://github.com/YOUR_USERNAME/myapp.git git push -u origin main

Push করার আগে .gitignore-এ .env আছে কিনা দেখে নিন।

Prepare the Server

Security ধাপটি কখনো পরে করব ভেবে রাখবেন না। একটি নতুন server internet-এ আসার কয়েক মিনিটের মধ্যেই automated bot scan শুরু করে।

Set Up Nginx and SSL

  • Nginx install ও reverse proxy config — Nginx & Reverse Proxy
  • Domain-এর A record server IP-তে point করা
  • Certbot দিয়ে SSL — SSL & HTTPS

এই ধাপে browser-এ 502 Bad Gateway দেখলে চিন্তার কিছু নেই — app এখনো চালু হয়নি, এটাই স্বাভাবিক।

Get the Code on the Server

  • GitHub-এর সাথে server connect (Deploy Key বা PAT) — GitHub Setup
  • Home directory-তে clone করুন
SERVER — Terminal
cd ~ git clone git@github.com:YOUR_USERNAME/myapp.git cd myapp

Create .env, Then Build and Start

SERVER — Terminal
npm install npm run build pm2 start npm --name "myapp" -- start pm2 save pm2 startup

pm2 startup শুধু একটি command print করে — নিজে চালায় না। ওই sudo env PATH=... দিয়ে শুরু হওয়া command-টি copy করে আলাদাভাবে run করতে হবে। এই ধাপ মিস করলে server reboot-এর পর app আর উঠবে না।

Test Live

Browser-এ আপনার domain খুলুন। Site দেখা যাচ্ছে এবং padlock icon আছে — অভিনন্দন, আপনার First Deployment সফল

Where Everything Lives

Deploy শেষে আপনার server-এর গঠন এরকম হবে:

        • .env
        • package.json

মনে রাখার সহজ নিয়ম — server-এর config ফাইল থাকে /etc/-তে, আর আপনার নিজের ফাইল ও log থাকে /home/-এ।

Troubleshooting

সমস্যাকারণসমাধান
502 Bad GatewayApp চালু নেই বা crash করেছেpm2 listpm2 logs myapp দেখুন
Could not find a production buildnpm run build করা হয়নিnpm run build চালিয়ে pm2 restart myapp
Nginx-এর default pageNginx reload করা হয়নিsudo nginx -t তারপর sudo systemctl reload nginx
Port 3000 busyআগের একটি process চলছেsudo ss -tlnp দিয়ে দেখুন, pm2 delete myapp করে আবার start করুন
Reboot-এর পর site downpm2 startup-এর command চালানো হয়নিpm2 startup আবার চালিয়ে printed command-টি run করুন
Permission deniedsudo ছাড়া system ফাইল এডিটCommand-এর আগে sudo দিন

Update Workflow

এরপর থেকে code পরিবর্তন করলে এই দুটি ধাপ:

LOCAL — Terminal
git add . git commit -m "update message" git push
SERVER — Terminal
cd ~/myapp git pull npm install # শুধু নতুন package যোগ হলে npm run build pm2 restart myapp

.env পরিবর্তন হলে সেটি server-এ manually update করতে হবে — .env কখনো Git-এ যায় না, তাই git pull এটি আনবে না।

Real-World Note

এই manual process-টি প্রতিবার করা ক্লান্তিকর — এবং সেখানেই মানুষ ভুল করে। কেউ npm run build ভুলে যায়, কেউ ভুল server-এ deploy করে ফেলে।

এই কারণেই পরবর্তী ধাপ হলো automation — GitHub Actions বা Docker দিয়ে এই পুরো প্রক্রিয়াটি একটি git push-এ সীমাবদ্ধ করা। কিন্তু automation তখনই লিখতে পারবেন যখন প্রতিটি ধাপ হাতে করে বুঝেছেন। এখন আপনি বুঝেছেন।

Quick Check

  • Server secure — password login বন্ধ, firewall চালু?
  • node -v এবং git --version কাজ করছে?
  • .env তৈরি হয়েছে এবং chmod 600 করা?
  • npm run build কোনো error ছাড়াই শেষ হয়েছে?
  • pm2 list-এ status online?
  • pm2 startup-এর printed command চালানো হয়েছে?
  • Browser-এ padlock সহ site দেখা যাচ্ছে?

পরবর্তী → Server Deployment Overview

nextjs deployment bangla, deployment checklist bangla, server directory layout bangla, next.js production tutorial, pm2 nginx nextjs bangla, first deployment guide bangla, deploy troubleshooting bangla

Last updated on