VF ভার্টফিউশন বাংলা ডকুমেন্টেশন
English

ফেজ ২ — ইনস্টলেশন#

৭টি লেসন · লেভেল: শুরুর থেকে মধ্যম

খালি সার্ভার থেকে চালু প্যানেল — এই ফেজে পুরো পথ।

এই ফেজে কী আছে#

লেসনকী শিখবেন
১ — পরিকল্পনা: হার্ডওয়্যার, OS, পার্টিশনইনস্টলের আগে যা ঠিক করে নেবেন
২ — কন্ট্রোল সার্ভার ইনস্টলএকটি স্ক্রিপ্ট nginx, PHP, MariaDB, Redis ও অ্যাপ বসায়
৩ — SSL, ডোমেইন ও Cloudflareself-signed সরিয়ে নিজের সার্টিফিকেট বসানো
৪ — হাইপারভাইজার নোড ইনস্টলপ্রতিটি বেয়ার-মেটাল নোডে একটি কমান্ড
৫ — হাইপারভাইজার কমিশন ও রিসোর্স সীমানোড যোগ করে কত রিসোর্স বিক্রি হবে ঠিক করা
৬ — টাস্ক কিউ, সার্ভিস ও আপডেটভারী কাজ Redis কিউতে নেওয়া ও সার্ভিস দেখা
৭ — ইনস্টল-পরবর্তী নিরাপত্তাপ্রথম দিনেই যে কাজগুলো সারতে হয়

লেসন ১ — পরিকল্পনা: হার্ডওয়্যার, OS, পার্টিশন#

ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: কন্ট্রোল সার্ভার ছোট জিনিস। ২ GB RAM আর ২০ GB ডিস্কেই চলে, কারণ ওখানে কোনো VM চলে না। কিন্তু ওটা মরলে পুরো ক্লাস্টার সাথে যাবে, তাই ব্যাকআপ রাখুন। টাকা খরচ হবে হাইপারভাইজারে।

কন্ট্রোল সার্ভার#

বিষয়সর্বনিম্নসুপারিশ
RAM২ GB৪ GB বা বেশি
ডিস্ক২০ GB৪০ GB (লগ ও ডাটাবেস বাড়ে)
আর্কিটেকচারx86_64x86_64

ছোট একটি VPS-ই যথেষ্ট। এটি VM চালায় না, তাই বড় মেশিন লাগে না। তবে এটিই একক ব্যর্থতার বিন্দু — এর ব্যাকআপ রাখা বাধ্যতামূলক (ফেজ ৪, লেসন ৯)।

সমর্থিত OS — কন্ট্রোল সার্ভার (শুধু x86_64)#

OSঅবস্থা
Debian 12 (Bookworm)পূর্ণ সমর্থিত
Debian 13 (Trixie)পূর্ণ সমর্থিত
Ubuntu 22.04 / 24.04পূর্ণ সমর্থিত
AlmaLinux 9 / 10পূর্ণ সমর্থিত
Rocky Linux 9 / 10পূর্ণ সমর্থিত

সমর্থিত OS — হাইপারভাইজার#

OSx86_64AArch64
Debian 12 / 13হ্যাঁহ্যাঁ
AlmaLinux 9হ্যাঁনা
AlmaLinux 10হ্যাঁহ্যাঁ
Rocky Linux 9হ্যাঁনা
Rocky Linux 10হ্যাঁহ্যাঁ
Ubuntu 22.04 / 24.04হ্যাঁনা
Fedora 44শুধু পরীক্ষার জন্যনা

ডকুমেন্টেশনের ভাষায় VirtFusion Debian-ভিত্তিক সিস্টেমের জন্য বেশি অনুকূল — হাইপারভাইজারে Debian-ই তাদের পছন্দ।

পার্টিশন — সবচেয়ে বেশি ভুল হয় এখানে#

VM-এর ডিস্ক ডিফল্টে থাকে /home-এ। তাই:

  • /home-কে সবচেয়ে বড় পার্টিশন বানান (প্রায় পুরো ডিস্ক)
  • ফাইল সিস্টেম ext4 রাখুন
  • / (রুট) ৩০–৫০ GB যথেষ্ট

সতর্কতা: ডিফল্ট ইনস্টলার প্রায়ই পুরো ডিস্ক /-তে দিয়ে দেয় আর /home ছোট রাখে। তখন কয়েকটি VM-এর পরই জায়গা শেষ হয়। OS বসানোর আগেই পার্টিশন ঠিক করুন — পরে বদলানো কষ্টকর।


লেসন ২ — কন্ট্রোল সার্ভার ইনস্টল#

ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: একটা স্ক্রিপ্টই সব বসিয়ে দেয়। তবে আগে তিনটা জিনিস দেখে নিন — যথেষ্ট RAM, ঘড়ি সত্যিই সিঙ্ক আছে কিনা, আর ৮০ ও ৪৪৩ পোর্ট খোলা কিনা। সাধারণ ক্লাউড ইমেজে অন্তত একটা ঠিক থাকে না, আর পরে ঠিক করতে গেলে বেশি ঝামেলা।

ড্যাশবোর্ডের কন্ট্রোল সার্ভার কার্ড। এখানে OS, কার্নেল, আপটাইম, মেমরি ও ডিস্ক ব্যবহার দেখা যায়।
ড্যাশবোর্ডের কন্ট্রোল সার্ভার কার্ড। এখানে OS, কার্নেল, আপটাইম, মেমরি ও ডিস্ক ব্যবহার দেখা যায়।
License পেজ। এখানে লাইসেন্সের ধরন, মেয়াদ, লাইসেন্সকৃত IP ও সার্ভার স্লট দেখা যায়।
License পেজ। এখানে লাইসেন্সের ধরন, মেয়াদ, লাইসেন্সকৃত IP ও সার্ভার স্লট দেখা যায়।

সহজ ভাষায়#

একটি স্ক্রিপ্ট সব করে দেয় — nginx, PHP, MariaDB, Redis, VirtFusion অ্যাপ।

আগে এই তিনটি পরীক্ষা করুন#

ছোট ক্লাউড ইমেজে সাধারণত এর কোনো একটি ঠিক থাকে না। ইনস্টলের আগে ঠিক করা পরে ঠিক করার চেয়ে সহজ।

  1. মেশিনে ২ GB বা তার বেশি RAM আছে কিনা দেখুন।
  2. ঘড়ি সিঙ্ক আছে কিনা দেখুন। ঘড়ি ৬০ সেকেন্ডের বেশি ভুল হলে লাইসেন্স যাচাই ব্যর্থ হয়।
  3. ফায়ারওয়াল ৮০ ও ৪৪৩ পোর্ট খোলা রাখে কিনা দেখুন।
BASH
free -h                     # কমপক্ষে 2 GB, 4 GB হলে ভালো
timedatectl                 # "System clock synchronized: yes"
ufw status                  # 80 আর 443 খোলা থাকতে হবে

ঘড়ি সিঙ্ক না থাকলে একটি টাইম ক্লায়েন্ট ইনস্টল করুন:

BASH
apt install systemd-timesyncd -y
systemctl enable --now systemd-timesyncd

UFW চালু থাকলে এবং শুধু ২২ পোর্ট খোলা থাকলে প্যানেলের দুইটি পোর্ট খুলুন:

BASH
ufw allow 80/tcp
ufw allow 443/tcp
ufw reload

আপনার OS-এর স্ক্রিপ্ট চালান#

সতর্কতা: Ubuntu স্ক্রিপ্টের নামে ড্যাশ নয়, ডট আছে। install-control-ubuntu-24-04.sh ঠিকানা 404 ত্রুটি দেয়।

BASH
# Debian 11
apt install curl -y
curl https://install.virtfusion.net/install-control-debian-11.sh | sh -s -- --verbose

# Debian 12
apt install curl -y
curl https://install.virtfusion.net/install-control-debian-12.sh | sh -s -- --verbose

# Debian 13
apt install curl -y
curl https://install.virtfusion.net/install-control-debian-13.sh | sh -s -- --verbose

# Ubuntu 22.04
apt install curl -y
curl https://install.virtfusion.net/install-control-ubuntu-22.04.sh | sh -s -- --verbose

# Ubuntu 24.04
apt install curl -y
curl https://install.virtfusion.net/install-control-ubuntu-24.04.sh | sh -s -- --verbose

# AlmaLinux / Rocky 8
dnf install curl -y
curl https://install.virtfusion.net/install-control-rhel-8.sh | sh -s -- --verbose

# AlmaLinux / Rocky 9
dnf install curl -y
curl https://install.virtfusion.net/install-control-rhel-9.sh | sh -s -- --verbose

# AlmaLinux / Rocky 10
dnf install curl -y
curl https://install.virtfusion.net/install-control-rhel-10.sh | sh -s -- --verbose

কন্ট্রোল সার্ভার আগে থেকে ইনস্টল থাকলে স্ক্রিপ্ট বার্তা দিয়ে থেমে যায়। এটি /opt/virtfusion/app/control/.env ফাইল খোঁজে।

সার্ভিসগুলো চলছে কিনা দেখুন#

BASH
systemctl is-active vf-nginx vf-php8-fpm vf-control-wss mariadb redis-server
systemctl list-units --state=failed

প্রথম কমান্ড পাঁচবার active দিলে এবং দ্বিতীয় কমান্ড কোনো ইউনিট না দিলে ইনস্টল ঠিক আছে।

ইনস্টল শেষে#

স্ক্রিপ্ট শেষে পর্দায় দেখাবে:

  • প্যানেলের ঠিকানা (self-signed SSL সহ)
  • একটি অস্থায়ী অ্যাডমিন অ্যাকাউন্ট ও পাসওয়ার্ড

এই তথ্য সাথে সাথে নিরাপদ জায়গায় লিখে রাখুন। পর্দা হারালে পাসওয়ার্ড রিসেট করতে হবে:

BASH
vfcli-ctrl user:reset-admin-password

প্রথম লগইনে দুইটি পথ দেওয়া হবে: evaluation লাইসেন্স তৈরি করা (৩০ দিন), অথবা কেনা লাইসেন্স কী বসানো।


লেসন ৩ — SSL, ডোমেইন ও Cloudflare#

ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: ইনস্টলার self-signed সার্টিফিকেট দেয়, ব্রাউজার চেঁচাবে। প্যানেলে কোনো SSL পেজ নেই, VirtFusion শুধু ডিস্ক থেকে দুইটা ফাইল পড়ে। certbot দিয়ে Let's Encrypt সার্টিফিকেট নিন, আর deploy hook বসাতে ভুলবেন না — না বসালে ৯০ দিন পর চুপচাপ মেয়াদ শেষ হয়ে যাবে।

নিজের সার্টিফিকেট বসানো#

ইনস্টলার virt.fusion নামে একটি self-signed সার্টিফিকেট দেয় — ব্রাউজার সতর্কতা দেখাবে। প্রোডাকশনে এটি বদলান।

VirtFusion 7-এর প্যানেলে কোনো SSL পেজ নেই। এটি দুইটি ফাইল পড়ে, আর nginx সেখান থেকেই সার্টিফিকেট দেয়:

BASH
/opt/virtfusion/ssl/ssl.crt     # সম্পূর্ণ চেইন
/opt/virtfusion/ssl/ssl.key     # প্রাইভেট কী

Let's Encrypt সার্টিফিকেট নেওয়া#

VirtFusion-এর nginx-এ ৮০ পোর্টে একটি ACME ডিরেক্টরি আগে থেকেই তৈরি থাকে। webroot পদ্ধতিতে সেটি ব্যবহার করুন। nginx কনফিগ বদলানোর দরকার নেই।

  1. ডোমেইনটি কন্ট্রোল সার্ভারের দিকে তাক করান, আর ৮০ পোর্ট খোলা রাখুন।
  2. certbot ইনস্টল করুন।
  3. সার্টিফিকেট নিন।
BASH
apt install certbot -y

certbot certonly --webroot \
  -w /opt/virtfusion/nginx/acme \
  -d panel.example.com \
  --agree-tos --register-unsafely-without-email --non-interactive

প্রতিবার নবায়নে সার্টিফিকেট কপি করা#

certbot লেখে /etc/letsencrypt/live/-এ, কিন্তু nginx পড়ে /opt/virtfusion/ssl/ থেকে। deploy hook না থাকলে প্রথম নবায়নের পরেও প্যানেল পুরনো সার্টিফিকেট ধরে রাখে, আর একসময় সেটির মেয়াদ শেষ হয়।

BASH
cat > /etc/letsencrypt/renewal-hooks/deploy/virtfusion <<'EOF'
#!/bin/sh
set -e
D=/etc/letsencrypt/live/panel.example.com
install -m 0644 "$D/fullchain.pem" /opt/virtfusion/ssl/ssl.crt
install -m 0600 "$D/privkey.pem"   /opt/virtfusion/ssl/ssl.key
systemctl reload vf-nginx
EOF

chmod +x /etc/letsencrypt/renewal-hooks/deploy/virtfusion
/etc/letsencrypt/renewal-hooks/deploy/virtfusion

তারপর নবায়ন কাজ করে কিনা দেখুন:

BASH
certbot renew --dry-run
systemctl is-enabled certbot.timer

সতর্কতা: কন্ট্রোল সার্ভারকে Cloudflare প্রক্সির (কমলা মেঘ) পেছনে রাখবেন না। প্রক্সি ACME যাচাই ও VNC websocket দুটোই আটকে দেয়। DNS রেকর্ড "DNS only" অবস্থায় রাখুন।

একাধিক ডোমেইন#

প্যানেল একাধিক ডোমেইনে চালানো যায় (যেমন রিসেলারদের জন্য) — প্রতিটির জন্য আলাদা সার্টিফিকেট তৈরি হয়। VirtFusion ডকসে এটি "Multiple Control Server Domains"।

Cloudflare-এর পেছনে#

কন্ট্রোল সার্ভার Cloudflare দিয়ে ঢাকা যায়। তবে দুইটি বিষয় খেয়াল রাখুন:

  1. VNC WebSocket ট্রাফিক প্রক্সি করতে হলে Cloudflare-এর WebSocket সমর্থন চালু থাকতে হবে
  2. ACME যাচাইয়ের সময় প্রক্সি বন্ধ (grey cloud) রাখলে ঝামেলা কম

সতর্কতা (Trusted Hosts): প্যানেল যে Host হেডার গ্রহণ করবে তা নির্দিষ্ট করে দিন। না করলে ক্যাশ পয়জনিং ও ফিশিং লিংক তৈরি করা সম্ভব। VirtFusion-এ এটি "Trusted Hosts" নামে আছে — ডোমেইন বদলালে এটিও হালনাগাদ করুন।


লেসন ৪ — হাইপারভাইজার নোড ইনস্টল#

ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: বেয়ার মেটালে SSH করে একটা কমান্ড চালান, ওটাই KVM, libvirt, QEMU আর এজেন্ট নামিয়ে দেবে। শুধু আগে দেখে নিন BIOS-এ ভার্চুয়ালাইজেশন চালু আছে কিনা। VT-x বা AMD-V না থাকলে KVM চলবে না, এর কোনো বিকল্প নেই।

সহজ ভাষায়#

প্রতিটি বেয়ার-মেটাল নোডে SSH করে একটি কমান্ড — ব্যস।

BASH
( set -euo pipefail; \
  (command -v apt-get >/dev/null && apt-get update && apt-get install -y curl) || \
  (command -v dnf >/dev/null && dnf -y install curl); \
  curl -fsSL https://install.virtfusion.net/hypervisor-install.sh | bash )

স্ক্রিপ্ট বসায়: KVM, libvirt, QEMU, VirtFusion-এর এজেন্ট, UFW।

ইনস্টলের আগে নিশ্চিত করুন#

বিষয়কেন
CPU-তে ভার্চুয়ালাইজেশন চালু (VT-x / AMD-V)না থাকলে KVM চলবে না
/home বড় ও ext4VM ডিস্ক এখানে বসে
স্থির IPকন্ট্রোল সার্ভার এই IP-তে যোগাযোগ করবে
ঘড়ি সিঙ্ক (NTP)লাইসেন্স ও লগের জন্য

নেটওয়ার্ক মোড#

ইনস্টলের সময় ভাবতে হয় না — পরে প্যানেল থেকেই বেছে নেওয়া যায়:

Direct (MacVTap), Bridged, Routed, NAT, Open vSwitch Bridged, Isolated।

MacVTap হলো ডিফল্ট এবং সাধারণত বাড়তি নেটওয়ার্ক সেটআপ লাগে না। বিস্তারিত ফেজ ৩-এ।


লেসন ৫ — হাইপারভাইজার কমিশন ও রিসোর্স সীমা#

ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: প্যানেলে নোড যোগ করুন, নাম আর IP দিন, start চাপুন — দুই মেশিন হ্যান্ডশেক করবে। তারপর নোডকে তার সীমা বলে দিন: কয়টা VM, কত vCPU আর RAM সে বিলি করতে পারবে। ওভারকমিটের সিদ্ধান্ত ওখানেই।

ধাপে ধাপে#

  1. প্যানেলে Admin → Hypervisors → Add Hypervisor
  2. নাম ও IP (IPv4 বা IPv6) দিন
  3. start চাপলে কমিশনিং শুরু হয় — কন্ট্রোল সার্ভার নোডের সাথে হ্যান্ডশেক করে

কমিশন সফল হলে নোডের রিসোর্স সীমা ঠিক করুন:

সেটিংকী বসাবেন
Serversসর্বোচ্চ কতটি VM (০ = সীমাহীন)
Virtual CPU Coresসর্বোচ্চ vCPU — ওভারকমিট চাইলে ফিজিক্যালের চেয়ে বেশি
Memoryমোট RAM থেকে হাইপারভাইজারের নিজের ভাগ বাদ দিয়ে
Maximum Diskমোট জায়গা থেকে টেমপ্লেট ও অস্থায়ী ফাইলের ভাগ বাদ দিয়ে
Primary Networkনেটওয়ার্ক টাইপ (MacVTap/bridge ইত্যাদি)

প্রতিটি বিভাগ চালু করে Update চাপতে ভুলবেন না।

হাইপারভাইজার গ্রুপ#

Admin → Hypervisor Groups। ইনস্টলের সাথেই একটি "Default" গ্রুপ থাকে।

  • গ্রুপের নাম লোকেশন অনুযায়ী দিন — যেমন "Dhaka (DC1)" বা "United Kingdom (London)"
  • Server Distribution ঠিক করুন: নতুন VM গ্রুপের কোন নোডে বসবে

কাস্টমার সাধারণত লোকেশন বাছে; আপনার অ্যাপ বা বিলিং সিস্টেম গ্রুপ আইডি পাঠায়, VirtFusion নোড বেছে নেয়।

সতর্কতা: নোড আগে অন্য কন্ট্রোল সার্ভারে যুক্ত ছিল? তখন re-commission করতে গেলে "Commission status done" এরর আসে। নোডটি পরিষ্কার হলে /opt/virtfusion/app/hypervisor/conf/auth.json মুছে আবার চেষ্টা করুন, নয়তো নোড নতুন করে ইনস্টল করুন।


লেসন ৬ — টাস্ক কিউ, সার্ভিস ও আপডেট#

ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: ভারী কাজগুলো — বিল্ড, রিবুট, ব্যাকআপ — সব ব্যাকগ্রাউন্ড কিউতে যায়। কিউটা Redis-এ নিয়ে যান, ইনস্টলার ওটা আগেই বসিয়ে রেখেছে। আর সফটওয়্যার আপডেট রাখুন: আগে কন্ট্রোল সার্ভার, তারপর হাইপারভাইজার।

টাস্ক কিউ (Redis)#

সব ভারী কাজ — বিল্ড, রিবুট, ব্যাকআপ — পটভূমির কিউতে যায়। ডিফল্টে কিউ ডাটাবেসে থাকে। ব্যস্ত সিস্টেমে Redis ভালো (ইনস্টলারই Redis বসিয়ে রাখে)।

BASH
systemctl status redis

# /opt/virtfusion/app/control/.env
QUEUE_CONNECTION=redis        # অথবা database

vfcli-ctrl app:restart --services=queue

আপডেট রাখা#

VirtFusion দ্রুত বদলায়; পুরনো সংস্করণে বাগ ও নিরাপত্তা ঝুঁকি থাকে। কন্ট্রোল সার্ভার ও প্রতিটি হাইপারভাইজার — দুইটিই হালনাগাদ রাখতে হয়।

মনে রাখুন: আপডেটের সময় কোনো সার্ভার টাস্ক চলছে কি না দেখে নিন। আটকে থাকা টাস্ক থাকলে আগে পরিষ্কার করুন:

BASH
vfcli-ctrl task:cancel        # ১০ মিনিটের বেশি চলা টাস্ক বাতিল

লেসন ৭ — ইনস্টল-পরবর্তী নিরাপত্তা#

ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: আপনার প্যানেল এখন খোলা ইন্টারনেটে বসে আছে। অ্যাডমিন এলাকা নিজের IP-তে আটকান আর 2FA চালু করুন, আজই। সীমা চালু করার আগে নিজের IP যোগ করুন, না হলে নিজের প্যানেল থেকে নিজেই বেরিয়ে যাবেন।

সহজ ভাষায়#

প্যানেল ইন্টারনেটে খোলা। প্রথম দিনেই এই কাজগুলো সেরে ফেলুন।

১. অ্যাডমিন প্যানেল IP-তে সীমাবদ্ধ করা#

BASH
vfcli-ctrl admin:ip-restrict enable
vfcli-ctrl admin:ip-restrict addip 203.0.113.10
vfcli-ctrl admin:ip-restrict list
vfcli-ctrl admin:ip-restrict delip 203.0.113.10
vfcli-ctrl admin:ip-restrict disable

সতর্কতা: নিজের বর্তমান IP আগে যোগ করুন, তারপর enable করুন। উল্টো করলে নিজেই বাইরে আটকে যাবেন — তখন সার্ভারের কনসোল বা SSH থেকে disable চালানো ছাড়া উপায় নেই।

২. দুই ধাপের যাচাই (2FA)#

সব অ্যাডমিন অ্যাকাউন্টে 2FA চালু করুন। জরুরি অবস্থায় বন্ধ করার কমান্ড:

BASH
vfcli-ctrl tfa-force-off

৩. Trusted Hosts#

প্যানেল কোন Host হেডার মানবে, তা নির্দিষ্ট করুন — ক্যাশ পয়জনিং ও ফিশিং ঠেকায়।

৪. হোস্ট কার্নেল প্যাচ#

২০২৬ সালে তিনটি KVM দুর্বলতা প্রকাশ পেয়েছে — Januscape (CVE-2026-53359), Zapscape (CVE-2026-64561), ITScape (CVE-2026-46316)। প্রথম দুইটি x86_64-এ, তৃতীয়টি arm64-এ।

সমাধান একটাই: হোস্ট কার্নেল প্যাচ করে রিবুট। x86-এ প্যাচ না পাওয়া পর্যন্ত অন্তর্বর্তী উপায় হলো nested virtualization বন্ধ রাখা। arm64-এ প্যাচের বিকল্প নেই।

৫. অন্যান্য#

কাজকমান্ড / জায়গা
ক্যাপচা বন্ধ (শুধু দরকারে)vfcli-ctrl captcha-off
সিস্টেম ক্রেডেনশিয়াল রিসেটvfcli-ctrl system:reset-access-credentials
সার্ভার ভুলে ডিলিট ঠেকানোvfcli-ctrl server:dnd enable SERVER_ID
QEMU স্যান্ডবক্সচালু রাখুন — বন্ধ করা সুপারিশ নয়

ফেজ ২ শেষে আপনি যা পারবেন#

  • সঠিক OS ও পার্টিশন পরিকল্পনা করা
  • কন্ট্রোল সার্ভার ও হাইপারভাইজার ইনস্টল করা
  • SSL ও ডোমেইন ঠিক করা
  • নোড কমিশন করে রিসোর্স সীমা বসানো
  • কিউ Redis-এ নেওয়া ও আপডেট রাখা
  • প্রথম দিনের নিরাপত্তা কাজগুলো সারা

পরবর্তী: ফেজ ৩ — নেটওয়ার্ক ও স্টোরেজ