ল্যাপটপে ঢাকনা বন্ধ হতেই OpenClaw চুপ হয়ে যায়: WhatsApp বার্তা জমতে থাকে, নির্ধারিত কাজগুলো আপনার ফেরার অপেক্ষায় থাকে। সার্ভারে সে উত্তর দিতে থাকে। সমস্যা হলো, গেটওয়ে কোনো চ্যাট উইজেট নয়। এতে আপনার চ্যানেলগুলোর ক্রেডেনশিয়াল থাকে এবং স্যান্ডবক্স চালু না করলে এটি টুল সরাসরি হোস্টে চালায়। সবসময় চালু থাকা মেশিনে এটিকে সরানো তখনই লাভজনক, যখন নিরাপত্তা মডেলও সঙ্গে সরে।
এই গাইড নতুন Ubuntu 24.04 VPS-এ প্রায় ২০ মিনিটে কাজটা করে।
সর্বশেষ যাচাই 2026-10-04: OpenClaw 2026.9.8 (npm), Node 24.21 LTS এবং Ubuntu 24.04।
যা লাগবে
- একটি Linux VPS। আমরা আমাদের AI-Agent প্ল্যান ব্যবহার করি: 4 vCPU, 4 GB RAM, 40 GB ডিস্ক, মাসে $10। OpenClaw ডকস 6 GB RAM-এর কথা বলে, কিন্তু সেটা সোর্স থেকে তাদের Docker ইমেজ বানানোর জন্য; npm প্যাকেজে বিল্ড লাগে না।
- আপনার মডেল প্রোভাইডারের API কী, আর যে চ্যাট অ্যাকাউন্টগুলো যুক্ত করতে চান।
- ল্যাপটপে একটি SSH কী। এখনো না থাকলে: SSH কী দিয়ে লগ-ইন।
এখানে NAT প্ল্যান ভালোই চলে, হয়তো আরও মানানসই। গেটওয়ের কখনো খোলা ইনবাউন্ড পোর্ট লাগে না: WhatsApp, Discord আর Telegram (ডিফল্ট long polling) বাইরের দিকে সংযোগ করে, আর ড্যাশবোর্ডে আপনি পৌঁছান SSH দিয়ে। আলাদা IPv4 নিন কেবল তখন, যখন আপনার দরকারি কোনো চ্যানেল webhook দিয়ে বার্তা পৌঁছায় বা আপনি পাবলিক রিভার্স প্রক্সি বসানোর পরিকল্পনা করছেন।
১. এমন ইউজার যে root নয়
OpenClaw টুল চালায় সেই ইউজার হিসেবে, যে গেটওয়ের মালিক। সেটা root হলে, বিভ্রান্ত বা prompt injection-এ প্ররোচিত কোনো মডেল যে কমান্ডই চালানোর সিদ্ধান্ত নিক, সেটাও root হিসেবে চলবে। OpenClaw ডকস গেটওয়ে root হিসেবে চালানোকে অনিরাপদ ও অসমর্থিত বলে। sudo ছাড়া একটি আলাদা ইউজার তৈরি করুন:
# root হিসেবে
apt update && apt -y upgrade
adduser --disabled-password --gecos "" claw
install -d -m 700 -o claw -g claw /home/claw/.ssh
install -m 600 -o claw -g claw ~/.ssh/authorized_keys /home/claw/.ssh/authorized_keys # অর্ডারের সময় যোগ করা কী
loginctl enable-linger claw
শেষ লাইনটা যতটা মনে হয় তার চেয়ে বেশি গুরুত্বপূর্ণ। OpenClaw একটি systemd ইউজার সার্ভিস বসায়, আর lingering ছাড়া লগ আউট করলেই সেই সার্ভিস থেমে যায়। সার্ভারে সবচেয়ে সাধারণ "কালও তো চলছিল" এটাই।
২. Node 24 আর OpenClaw
OpenClaw 2026.9.8-এর লাগে Node >=24.16.0 <25 অথবা >=26.1.0। Ubuntu-র নিজস্ব nodejs প্যাকেজ পুরোনো, তাই আমরা NodeSource থেকে 24 LTS নিই:
# root হিসেবে
curl -fsSL https://deb.nodesource.com/setup_24.x | bash -
apt install -y nodejs
node -v # v24.16.0 বা নতুন
npm install -g openclaw@latest
openclaw --version
অফিসিয়াল এক-লাইনের কমান্ডও (curl -fsSL https://openclaw.ai/install.sh | bash) কাজ করে এবং Node নিজেই বসিয়ে দেয়। সার্ভারে আমরা দুটো স্পষ্ট ধাপ পছন্দ করি: কী কোথায় যাচ্ছে দেখা যায়, আর বাইনারি থাকে /usr/bin-এ, এমন কোনো হোম ডিরেক্টরিতে নয় যেখানে এজেন্ট লিখতে পারে।
৩. এজেন্ট ইউজার হিসেবে onboarding
claw হিসেবে SSH দিয়ে লগ-ইন করুন, su দিয়ে নয়। কেবল আসল লগ-ইনই সেই systemd ইউজার ম্যানেজার চালু করে, যা সার্ভিসের দরকার:
# ল্যাপটপ থেকে (NAT প্ল্যান: -p <আপনার SSH পোর্ট> যোগ করুন)
ssh claw@<server>
openclaw onboard --install-daemon
openclaw gateway status
উইজার্ড মডেল অ্যাক্সেস যাচাই করে, ~/.openclaw/openclaw.json লেখে, গেটওয়ে টোকেন তৈরি করে আর সার্ভিস বসায়। systemctl --user যদি বাস নিয়ে অভিযোগ করে, export XDG_RUNTIME_DIR=/run/user/$(id -u) সেট করে আবার চালান।
তারপর ফাইলগুলো আটকে দিন। OpenClaw-এর নিজের পরামর্শ: স্টেট ডিরেক্টরিতে 700 আর কনফিগে 600:
chmod 700 ~/.openclaw && chmod 600 ~/.openclaw/openclaw.json
openclaw security audit --deep
openclaw security audit --fix সংশোধনের নিরাপদ অংশটুকু প্রয়োগ করে: কড়া ফাইল অনুমতি, আর খোলা গ্রুপ নীতির বদলে অনুমতি-তালিকা। এটা শোনার ঠিকানা বদলায় না, ফায়ারওয়ালও বসায় না; নেটওয়ার্ক এক্সপোজার এখনো আপনার দায়িত্ব।
৪. গেটওয়ে loopback-এ রাখুন
গেটওয়ে তার WebSocket API আর ড্যাশবোর্ড দেয় একটিই পোর্টে, 18789, যা ডিফল্টভাবে 127.0.0.1-এ বাঁধা। এভাবেই রাখুন। একটা ন্যূনতম কনফিগ যা এটা স্পষ্ট করে লেখে:
// ~/.openclaw/openclaw.json
{
gateway: {
mode: "local",
bind: "loopback",
port: 18789,
auth: { mode: "token", token: "paste-output-of-openssl-rand-hex-32" },
},
}
টোকেন তৈরি করুন openssl rand -hex 32 বা openclaw doctor --generate-gateway-token দিয়ে। গেটওয়ে খালি টোকেন আর উদাহরণের মান প্রত্যাখ্যান করে, আর অডিট ২৪ অক্ষরের কম হলে সতর্ক করে।
যা করবেন না: bind-কে "lan" করে পোর্ট খুলে দেওয়া। ডকস এ নিয়ে স্পষ্ট: কখনো প্রমাণীকরণ ছাড়া 0.0.0.0-এ গেটওয়ে খুলবেন না, আর টোকেন থাকলেও পোর্ট ঢালাওভাবে ফরোয়ার্ড করবেন না। যে এই টোকেন পাবে, সে আপনার সার্ভারে কমান্ড চালাতে পারা একটি প্রসেসের অপারেটর হয়ে যাবে।
ফায়ারওয়ালে শুধু SSH-এর অনুমতি দিন, আর কিছু না:
# root হিসেবে
ufw allow OpenSSH
ufw enable
ufw status verbose
আমাদের NAT প্ল্যানে ড্যাশবোর্ড একটি বাইরের SSH পোর্ট দেখায়, কিন্তু সার্ভারের ভেতরে sshd এখনো 22-এ শোনে। OpenSSH-এর (পোর্ট 22) অনুমতি দিন, বাইরের পোর্ট নম্বরের নয়, নইলে ufw enable আপনাকে বাইরে আটকে দেবে। বিস্তারিত UFW গাইডে।
৫. SSH দিয়ে ড্যাশবোর্ডে যান
ল্যাপটপ থেকে একটি টানেল খুলুন এবং চালু রাখুন:
ssh -N -L 18789:127.0.0.1:18789 claw@<server>
# NAT প্ল্যান: ssh -N -p <আপনার SSH পোর্ট> -L 18789:127.0.0.1:18789 claw@<host>
http://127.0.0.1:18789/ খুলুন এবং গেটওয়ে টোকেন পেস্ট করুন। Ubuntu-র ডিফল্ট sshd লোকাল ফরোয়ার্ডিং অনুমোদন করে; আপনি যদি এটাকে কড়া করে থাকেন, তবে AllowTcpForwarding local হলো সেই সেটিং যা -L অনুমোদন করে আর রিমোট ফরোয়ার্ড আটকায়। টানেল administratively prohibited দেখিয়ে ব্যর্থ হলে এই লাইনটাই দেখুন।
tailnet-ও চলে: Tailscale Serve গেটওয়েকে loopback-এ রাখে আর অ্যাক্সেস সামলায়। দুটোই ঠিক আছে। পাবলিক পোর্ট নয়।
৬. পেয়ারিং, স্যান্ডবক্স, আর কে তার সঙ্গে কথা বলতে পারে
চ্যাট চ্যানেলগুলো হলো দ্বিতীয় দরজা। ডিফল্টভাবে, DM সমর্থিত চ্যানেল অপরিচিত প্রেরককে আগে পেয়ার করতে বলে; অনুমোদন দেন আপনি সার্ভার থেকে:
openclaw pairing approve <channel> <code>
গ্রুপে মেনশন বাধ্যতামূলক করুন, যাতে এজেন্ট রুমের প্রতিটি বার্তার উত্তর না দেয়। OpenClaw-এর শক্ত করা বেসলাইন প্রতিটি চ্যানেলের জন্য dmPolicy: "pairing" আর groups: { "*": { requireMention: true } } ব্যবহার করে।
দুটি সৎ সতর্কতা। প্রথমত: পেয়ারিং ঠিক করে কে একটি টার্ন শুরু করতে পারে, মডেলের কনটেক্সটে কী ঢুকবে তা নয়; একটি ফরোয়ার্ড করা বার্তা বা টেনে আনা ওয়েব পেজ এখনো আপনার শুরু করা টার্নকে চালিত করতে পারে। দ্বিতীয়ত: স্যান্ডবক্স চালু না করা পর্যন্ত মূল সেশনের টুল হোস্টে চলে (agents.defaults.sandbox.mode: "non-main" আপনার নিজের মূল সেশন ছাড়া সবকিছু স্যান্ডবক্সে রাখে)। স্যান্ডবক্স ডিফল্টভাবে বন্ধ, আর এর ডিফল্ট ব্যাকএন্ড Docker, তাই চালু করার আগে Docker বসান: VPS-এ Docker। যাদের আপনি বিশ্বাস করেন না তারা যদি বটের সঙ্গে একই চ্যানেলে থাকে, তবে আলাদা গেটওয়ে ব্যবহার করুন, সম্ভব হলে আলাদা সার্ভারে।
৭. আপডেট আর ব্যাকআপ
openclaw update
openclaw gateway status
openclaw backup create --output ~/backups/openclaw --verify
~/.openclaw-এ থাকে কনফিগ, চ্যানেলের ক্রেডেনশিয়াল (WhatsApp সেশনসহ), মডেলের অথ প্রোফাইল আর সেশনের ট্রান্সক্রিপ্ট। হারালে সব আবার পেয়ার করতে হবে; ফাঁস হলে WhatsApp-এ অন্য কেউ আপনি হয়ে যাবে। ব্যাকআপ নিন এবং কপি সার্ভারের বাইরে রাখুন: scp দিয়ে নামিয়ে নিন বা এনক্রিপশনসহ restic ব্যবহার করুন।
চেকলিস্ট
| যাচাই | কমান্ড | প্রত্যাশিত |
|---|---|---|
| গেটওয়ে root হিসেবে চলছে না | ps -eo user,args | grep '[o]penclaw' | প্রথম কলামে claw |
| লগ আউটের পরও চলে | loginctl show-user claw -p Linger | Linger=yes |
| শুধু loopback-এ শোনে | ss -ltnp | grep 18789 | 127.0.0.1:18789 |
| কোনো পাবলিক পোর্ট নেই | ufw status | শুধু OpenSSH |
| কনফিগ সবার পড়ার যোগ্য নয় | stat -c '%a' ~/.openclaw/openclaw.json | 600 |
| অডিট পরিষ্কার | openclaw security audit --deep | কোনো গুরুতর সমস্যা নেই |
EQVPS কোথায় কাজে আসে
একটি Node প্রসেস অনেক প্রোভাইডারই চালাতে পারে। আমরা যোগ করি KYC ছাড়া ক্রিপ্টো পেমেন্ট, শুধু loopback-এ শোনা গেটওয়ের সঙ্গে মানানসই NAT প্ল্যান, আর একটি MCP সার্ভার যা দিয়ে আপনার এজেন্ট নিজের সার্ভার নিজেই সামলাতে পারে। OpenClaw-কে এর সঙ্গে যুক্ত করলে আগে MCP সুরক্ষা-সীমা পড়ুন: সার্ভার অর্ডার করতে পারা টোকেন গেটওয়ে টোকেনের মতোই যত্ন পাওয়ার যোগ্য। VPS-এ এজেন্ট চালানো নিয়ে বিস্তৃত ধারণার জন্য দেখুন AI এজেন্ট গাইড।
আমাদের মত: এই ২০ মিনিট হলো একজন সহকারী আর চ্যাট ইন্টারফেসওয়ালা খোলা shell-এর মধ্যে পার্থক্য। বাকিটা বাদ দিলেও অন্তত ধাপ ১, ৪ আর ৫ করুন।
মন্তব্য
এখনো কোনো মন্তব্য নেই। প্রথম হোন।