Server Foundation
এই সেকশনে আপনি একটি Next.js app manually deploy করবেন একটি real Linux server-এ। কোনো automation নেই, কোনো Docker নেই — প্রতিটি step নিজে হাতে করবেন। এটাই সঠিক শেখার পদ্ধতি।
Why Manual First?
অনেকে সরাসরি Docker বা CI/CD দিয়ে শুরু করতে চান। এটা একটি common ভুল।
Manual deployment শিখলে আপনি জানবেন:
- আপনার app server-এ কোথায় থাকে এবং কিভাবে চলে
- Nginx আসলে কী করছে পর্দার পিছনে
- কোনো কিছু ভাঙলে কোথায় দেখতে হবে
এই জ্ঞান ছাড়া Docker বা GitHub Actions-এর error debug করা প্রায় অসম্ভব।
What You Will Build
এই সেকশন শেষে আপনার কাছে থাকবে:
এবং আপনার domain https://yourdomain.com-এ app live থাকবে।
What You Will NOT Do Here
এখানে ইচ্ছাকৃতভাবে কিছু জিনিস রাখা হয়নি — complexity কমাতে।
- Database নেই — stateless app deploy করা হবে। Database setup পরবর্তী Production সেকশনে আছে।
- Docker নেই — manually চালাবেন। Docker overview Production সেকশনে আছে।
- CI/CD নেই — manually deploy করবেন। Automation Production সেকশনে আছে।
Steps in Foundation
Choose a Server
একটি VPS provider বেছে নিন এবং Ubuntu server তৈরি করুন।
Secure the Server
Non-root user তৈরি করুন, SSH key setup করুন এবং firewall চালু করুন।
Set Up Nginx
Nginx install করুন এবং reverse proxy configure করুন।
Enable HTTPS
Domain connect করুন এবং free SSL certificate নিন।
Configure Environment Variables
Server-এ .env file তৈরি করুন।
Set Up PM2
PM2 দিয়ে app চালু করুন এবং auto-restart configure করুন।
Deploy Your First App
create-next-app থেকে শুরু করে live পর্যন্ত — পুরো walkthrough।
CyberSec Note
Manual deployment শেখার একটি বড় সুবিধা হলো attack surface বোঝা। যখন আপনি নিজে firewall configure করেন, SSH hardening করেন এবং non-root user তৈরি করেন — তখন বুঝতে পারেন কেন এই steps না থাকলে একটি server মিনিটের মধ্যে compromise হতে পারে।
TryHackMe-তে “Linux Privilege Escalation” এবং “Advent of Cyber” rooms-এ দেখবেন attackers ঠিক এই misconfiguration-গুলোই exploit করে।
পরবর্তী → Choose a Server