SSD Nodes Learn
নির্দেশিকা Matt Connorদ্বারা Matt Connor · আপডেট করা হয়েছে 2026-07-24

VPS-এ Docker Compose দিয়ে Dify সেটআপ করার নিয়ম

Dify চালানোর জন্য কমপক্ষে 4 GB RAM প্রয়োজন। Docker Compose ব্যবহার করে ৬টি container সেটআপ করার সময় .env ফাইলে সিক্রেট পরিবর্তন করতে ভুলবেন না।

Dify কী এবং আপনি কী চালাতে যাচ্ছেন

Dify হলো একটি self-hostable প্ল্যাটফর্ম যা large language models-এর ওপর ভিত্তি করে অ্যাপ্লিকেশন তৈরির জন্য ব্যবহৃত হয়। আপনি চ্যাট অ্যাপ, agents এবং retrieval pipelines ডিজাইন করার জন্য একটি web interface পাবেন, কোড থেকে এগুলো কল করার জন্য একটি API পাবেন, এবং prompt, dataset ও model keys ম্যানেজ করার জন্য একটি নির্দিষ্ট স্থান পাবেন। এটি এমন একটি টুল যা একটি ছোট টিম ব্যবহার করে যাতে সবাই একটি শেয়ার্ড প্রাইভেট বেসের ওপর কাজ করতে পারে, পরিবর্তে স্ক্রিপ্টগুলোতে API keys ছড়িয়ে না ফেলে।

এটি নিজে চালানো মানে হলো বেশ কিছু moving parts চালানো। Dify Docker containers-এর একটি সেট হিসেবে আসে: একটি API server, একটি background worker, একটি web frontend, একটি Postgres database, একটি Redis cache, এবং একটি vector database; এই সবকটি Docker Compose দিয়ে সংযুক্ত। এটি একটি single binary-র চেয়ে বড়, তবে Compose এই সংযোগগুলো সামলায় এবং কয়েক GB RAM সম্পন্ন একটি VPS-এ এটি স্বাচ্ছন্দ্যে চলে।

যেহেতু Dify আপনার model API keys এবং প্রায়শই retrieval-এর জন্য আপলোড করা private documents ধারণ করে, তাই এটি যে সার্ভারে চলছে তাকে প্রথম থেকেই sensitive হিসেবে বিবেচনা করুন। এই গাইডটি এটি ইনস্টল করবে এবং এরপর যেকোনো সিক্রেট ধারণকারী সার্ভারের মতো এটিকে harden করবে।

Prerequisites

আপনার একটি VPS প্রয়োজন যাতে Ubuntu 24.04 চলছে এবং Docker ও Docker Compose plugin ইনস্টল করা আছে। এছাড়া আপনার এমন একজন ইউজার প্রয়োজন যার sudo আছে অথবা যে docker গ্রুপের সদস্য। আপনি যদি Docker-এর সাথে নতুন হন, তবে the basics of Docker Compose on a VPS গাইডটি এই গাইডে ধরে নেওয়া ইনস্টলেশন এবং core commands গুলো কভার করে। সার্ভারের সাথে একটি domain name পয়েন্ট করে রাখা ভালো, কারণ আপনি bare IP address-এর পরিবর্তে Dify-এর সামনে TLS ব্যবহার করতে চাইবেন।

Step 1: Get Dify and its Compose files

Dify তার Docker setup মূল repository-তে রাখে। এটি clone করুন এবং docker ডিরেক্টরিতে প্রবেশ করুন:

git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env

.env ফাইলটি হলো সম্পূর্ণ configuration। যেকোনো কিছু শুরু করার আগে এটি পড়ুন। সবচেয়ে গুরুত্বপূর্ণ ভ্যালুগুলো হলো পাসওয়ার্ড এবং সিক্রেট সেট করার ভ্যালুগুলো: SECRET_KEY, Postgres password, এবং Redis password। উদাহরণস্বরূপ দেওয়া ফাইলটিতে placeholder ভ্যালু থাকে; এগুলো পরিবর্তন না করা হলো self-hosted Dify হ্যাক হওয়ার সবচেয়ে সাধারণ কারণ। একটি আসল secret key তৈরি করুন:

openssl rand -base64 42

এটি SECRET_KEY-এ পেস্ট করুন এবং ফাইলের প্রতিটি password field-এর জন্য একটি শক্তিশালী ও ইউনিক ভ্যালু সেট করুন।

Step 2: Start it

Stack-টি চালু করুন:

docker compose up -d

প্রথমবার চালানোর সময় এটি বেশ কিছু image ডাউনলোড করবে এবং database ইনিশিয়ালাইজ করবে, তাই কিছুক্ষণ সময় দিন। কন্টেইনারগুলো healthy কিনা তা চেক করুন:

docker compose ps

প্রতিটি service running রিড করতে পারবে। Dify ডিফল্টভাবে port 80-এ একটি bundled nginx container-এর মাধ্যমে এর web interface প্রদান করে। http://YOUR_SERVER/install ভিজিট করার সময় আপনি প্রথমবার admin account তৈরি করবেন। কন্টেইনারগুলো healthy হওয়ার সাথে সাথে এবং অন্য কিছু পোর্টে পৌঁছানোর আগেই এটি করুন, কারণ সেই অ্যাকাউন্টটি তৈরি না হওয়া পর্যন্ত যে কেউ পেজটি লোড করে অ্যাকাউন্টটি দখল করে নিতে পারে।

Step 3: Do not expose it raw. Put TLS and a firewall in front

এখান থেকেই বেশিরভাগ দ্রুত ইনস্টলেশন শেষ হয় এবং বেশিরভাগ ইনসিডেন্ট শুরু হয়। Dify-এর নিজস্ব nginx প্রতিটি interface-এ port 80-এ plain text হিসেবে লিসেন করে। আপনি চান না আপনার admin login এবং model keys plain HTTP-এর মাধ্যমে যাতায়াত করুক, এবং আপনি চান না internal services বাইরে থেকে অ্যাক্সেসযোগ্য হোক।

একটি default-deny firewall দিয়ে সার্ভারটি লক করে দিন যা শুধুমাত্র SSH এবং web traffic অনুমতি দেয়:

sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

মনে রাখবেন যে একটি firewall যা শুধুমাত্র IPv4 কভার করে, সেটি IPv6-এ একই port ওপেন রাখতে পারে; এটি হলো IPv6 firewall gap যা অনেক self-hoster-এর সমস্যা তৈরি করে। নিশ্চিত করুন যে উভয় stack ফিল্টার করা হয়েছে।

TLS-এর জন্য সবচেয়ে সহজ উপায় হলো Dify-এর web port-কে loopback-এর সাথে বাইন্ড করা এবং সামনে Let's Encrypt certificate সহ একটি reverse proxy চালানো, যাতে পাবলিক ইন্টারনেটে শুধুমাত্র HTTPS ব্যবহারকারী প্রক্সিটি থাকে। Dify-এর .env আপনাকে exposed port পরিবর্তন করতে দেয়; এটি 127.0.0.1-এ বাইন্ড করার জন্য সেট করুন এবং আপনার প্রক্সিটিকে সেখানে পয়েন্ট করুন। running an AI agent safely on a VPS-এর agent-hardening আইডিয়াগুলো এখানেও প্রযোজ্য: moving parts গুলোকে loopback-এ রাখুন, শুধুমাত্র যা পাবলিক করা প্রয়োজন তা প্রকাশ করুন, এবং একটি hardened front door-কে TLS হ্যান্ডেল করতে দিন।

Step 4: Keep it patched

Dify দ্রুত আপডেট হয় এবং আপডেটগুলোর মধ্যে security fixes থাকে। আপডেট করার নিয়ম হলো docker ডিরেক্টরি থেকে pull করা এবং restart করা:

git pull
docker compose pull
docker compose up -d

কোনো major version jump করার আগে release notes পড়ুন, কারণ Dify মাঝে মাঝে রিলিজের মাঝে .env schema পরিবর্তন করে, এবং একটি নতুন variable যা আপনি সেট করেননি তা কন্টেইনার স্টার্ট হতে বাধা দিতে পারে।

Step 5: Back up what you cannot regenerate

একটি Dify সার্ভারে দুটি জিনিস অপূরণীয়: Postgres database, যা আপনার apps, users, এবং settings ধারণ করে, এবং সেই volume যা আপলোড করা documents এবং vector index সংরক্ষণ করে। উভয়ই docker ডিরেক্টরিতে Docker volumes হিসেবে থাকে। একটি নির্দিষ্ট সময় অন্তর এদের snapshot নিন এবং snapshot গুলো সার্ভার থেকে কপি করে রাখুন। একটি model API key পুনরায় ইস্যু করা সম্ভব; কিন্তু আপনি যে অ্যাপটি তৈরি করতে এক সপ্তাহ ব্যয় করেছেন তা সম্ভব নয়।

আরও স্বয়ংক্রিয়, code-running agent-এর জন্য self-hosting Agent Zero দেখুন, এবং building your own AI agent on a VPS সবকিছুর নিচের ভিত্তিগুলো কভার করে।

FAQ

What are the system requirements to self-host Dify?

Dify প্রায় আধা ডজন কন্টেইনারের একটি Docker Compose stack হিসেবে চলে, তাই অন্তত 2 GB free RAM সম্পন্ন একটি VPS-এর পরিকল্পনা করুন, আদর্শভাবে 4 GB, সাথে কিছু CPU core এবং আপলোড করা documents ও vector index-এর জন্য পর্যাপ্ত disk space প্রয়োজন। মেমরি প্রেশার মূলত database এবং vector store থেকে আসে, Dify থেকে নয়।

Is it safe to expose Dify directly on port 80?

না। Dify-এর bundled web server plain HTTP-এ লিসেন করে এবং এটি আপনার admin login ও model API keys-এর সামনে থাকে। সামনে Let's Encrypt certificate সহ একটি reverse proxy রাখুন, Dify-এর নিজস্ব port-কে loopback-এ বাইন্ড করুন, এবং শুধুমাত্র HTTPS প্রক্সিটিকে ইন্টারনেটের মুখোমুখি হতে দিন। এর সাথে IPv4 এবং IPv6 উভয়কেই কভার করে এমন একটি default-deny firewall ব্যবহার করুন।

How do I update a self-hosted Dify?

docker ডিরেক্টরি থেকে git pull চালান, তারপর নতুন image ফেচ করতে এবং restart করতে docker compose pull এবং docker compose up -d চালান। প্রথমে release notes পড়ুন, কারণ Dify মাঝে মাঝে ভার্সনগুলোর মাঝে নতুন .env variables যোগ করে, এবং একটি missing variable কন্টেইনার স্টার্ট হতে বাধা দিতে পারে।

What is the first thing to do after installing Dify?

/install ভিজিট করুন এবং অবিলম্বে admin account তৈরি করুন। সেই অ্যাকাউন্টটি তৈরি না হওয়া পর্যন্ত, যে কেউ পেজটি অ্যাক্সেস করতে পারলে তা দখল করে নিতে পারে। কন্টেইনারগুলো healthy হওয়ার সাথে সাথে এবং বিশ্বজুড়ে firewall খোলার আগেই এটি সেটআপ করুন।