SSD Nodes Learn
تعلیمی Matt Connorتحریر: Matt Connor · اپ ڈیٹ شدہ 2026-07-24

Dify کو VPS پر Docker Compose سے کیسے چلائیں

Dify کو خود host کرنے کے لیے 4 GB RAM درکار ہے۔ .env فائل میں secrets درست کریں اور /install پر اکاؤنٹ بنائیں تاکہ آپ کا ڈیٹا محفوظ رہے۔

Dify کیا ہے، اور آپ اسے چلانے کے لیے کس چیز کی ذمہ داری لے رہے ہیں

Dify ایک self-hostable پلیٹ فارم ہے جو large language models پر ایپلی کیشنز بنانے کے لیے استعمال ہوتا ہے۔ آپ کو چیٹ ایپس، agents، اور retrieval pipelines ڈیزائن کرنے کے لیے ایک web interface، انہیں اپنے کوڈ سے کال کرنے کے لیے ایک API، اور prompts، datasets، اور model keys کو مینیج کرنے کے لیے ایک جگہ ملتی ہے۔ یہ ایک ایسا ٹول ہے جسے ایک چھوٹی ٹیم اس لیے استعمال کرتی ہے تاکہ ہر کوئی ایک مشترکہ private base پر کام کرے، بجائے اس کے کہ API keys کو مختلف scripts میں بکھیر دیا جائے۔

اسے خود چلانے کا مطلب ہے کہ آپ کو کئی متحرک حصوں (moving parts) کو چلانا ہوگا۔ Dify Docker containers کے ایک سیٹ کے طور پر آتا ہے: ایک API server، ایک background worker، ایک web frontend، ایک Postgres database، ایک Redis cache، اور ایک vector database، جو سب Docker Compose کے ذریعے آپس میں جڑے ہوتے ہیں۔ یہ ایک single binary سے زیادہ ہے، لیکن Compose ان کے درمیان کنکشن سنبھال لیتا ہے، اور ایک VPS جس میں 2 GB RAM اضافی ہو، اسے آسانی سے چلا سکتا ہے۔

چونکہ Dify آپ کی model API keys اور اکثر وہ private documents (جو آپ نے retrieval کے لیے اپ لوڈ کیے ہوں) کو اپنے پاس رکھتا ہے، اس لیے جس سرور پر یہ چل رہا ہے اسے پہلے منٹ سے ہی حساس (sensitive) سمجھیں۔ یہ گائیڈ اسے انسٹال کرتی ہے، اور پھر اسے اسی طرح محفوظ (harden) کرتی ہے جیسے آپ کسی بھی ایسی سروس کو کرتے ہیں جو secrets رکھتی ہو۔

Prerequisites

آپ کو ایک VPS کی ضرورت ہے جس پر Ubuntu 24.04 چل رہا ہو اور اس میں Docker اور Docker Compose plugin انسٹال ہو، اور ایک ایسا صارف جس کے پاس sudo ہو یا جو docker گروپ کا رکن ہو۔ اگر Docker آپ کے لیے نیا ہے، تو the basics of Docker Compose on a VPS اس انسٹالیشن اور بنیادی commands کا احاطہ کرتا ہے جن پر یہ گائیڈ انحصار کرتی ہے۔ ایک ڈومین نیم جو سرور کی طرف پوائنٹ کر رہا ہو، ہونا ضروری ہے، کیونکہ آپ کو bare IP address کے بجائے Dify کے سامنے TLS استعمال کرنا ہوگا۔

Step 1: Get Dify and its Compose files

Dify اپنا Docker setup اپنے main repository میں رکھتا ہے۔ اسے clone کریں اور docker directory میں جائیں:

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

.env فائل مکمل configuration ہے۔ شروع کرنے سے پہلے اسے پڑھ لیں۔ سب سے اہم ویلیوز وہ ہیں جو passwords اور secrets سیٹ کرتی ہیں: SECRET_KEY، Postgres password، اور Redis password۔ مثال کے طور پر دی گئی فائل placeholder values کے ساتھ آتی ہے، اور انہیں ویسے ہی چھوڑ دینا self-hosted Dify کے ہیک ہونے کا سب سے عام طریقہ ہے۔ ایک حقیقی secret key جنریٹ کریں:

openssl rand -base64 42

اسے SECRET_KEY میں پیسٹ کریں، اور فائل میں موجود ہر password field کے لیے ایک مضبوط اور منفرد (unique) ویلیو سیٹ کریں۔

Step 2: Start it

اسٹیک کو شروع کریں:

docker compose up -d

پہلی بار چلنے پر یہ کئی images ڈاؤن لوڈ کرتا ہے اور database کو initialize کرتا ہے، اس لیے ایک منٹ کا انتظار کریں۔ چیک کریں کہ containers درست (healthy) ہیں:

docker compose ps

ہر سروس کو running پڑھنا چاہیے۔ Dify پیش ڈیفالٹ طور پر port 80 پر ایک bundled nginx container کے ذریعے اپنا web interface فراہم کرتا ہے۔ جب آپ پہلی بار http://YOUR_SERVER/install پر جائیں گے، تو آپ admin account بنائیں گے۔ اسے فوری طور پر کریں، اس سے پہلے کہ کوئی اور چیز port تک پہنچ سکے، کیونکہ جب تک وہ اکاؤنٹ موجود نہیں ہوتا، کوئی بھی جو پیج لوڈ کرتا ہے وہ اس پر قبضہ کر سکتا ہے اور آپ کے instance کا مالک بن سکتا ہے۔

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

یہ وہ جگہ ہے جہاں زیادہ تر تیز انسٹالیشنز رک جاتی ہیں اور زیادہ تر حادثات شروع ہوتے ہیں۔ Dify کا اپنا nginx ہر interface پر port 80 پر بغیر کسی انکرپشن کے (in the clear) سنتا ہے۔ آپ نہیں چاہیں گے کہ آپ کا 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 کو کور کرتا ہے، وہی ports IPv6 پر بھی کھلے چھوڑ سکتا ہے، جو کہ IPv6 firewall gap ہے جو بہت سے self-hosters کو متاثر کرتا ہے۔ تصدیق کریں کہ دونوں stacks filtered ہیں۔

TLS کے لیے، سب سے بہترین طریقہ یہ ہے کہ Dify کے web port کو loopback سے جوڑ دیا جائے اور سامنے Let's Encrypt سرٹیفکیٹ کے ساتھ ایک reverse proxy چلایا جائے، تاکہ عوامی انٹرنیٹ پر صرف وہ proxy ہو جو HTTPS استعمال کر رہا ہو۔ Dify کا .env آپ کو exposed port تبدیل کرنے کی اجازت دیتا ہے؛ اسے 127.0.0.1 پر bind کرنے کے لیے سیٹ کریں اور اپنے proxy کو اس کی طرف پوائنٹ کریں۔ running an AI agent safely on a VPS میں دی گئی agent-hardening کی تجاویز یہاں بھی لاگو ہوتی ہیں: متحرک حصوں کو loopback پر رکھیں، صرف وہی چیز ظاہر کریں جو عوامی (public) ہونا ضروری ہے، اور ایک مضبوط front door کو TLS استعمال کرنے دیں۔

Step 4: Keep it patched

Dify تیزی سے ترقی کر رہا ہے، اور updates میں security fixes شامل ہوتے ہیں۔ Update کرنے کے لیے docker directory سے pull اور restart کرنا ہوتا ہے:

git pull
docker compose pull
docker compose up -d

کسی بڑے ورژن اپ گریڈ سے پہلے release notes پڑھیں، کیونکہ Dify کبھی کبھار ریلیزز کے درمیان .env schema کو تبدیل کر دیتا ہے، اور ایک نئی variable جو آپ نے سیٹ نہ کی ہو، وہ container کو شروع ہونے سے روک سکتی ہے۔

Step 5: Back up what you cannot regenerate

Dify کے سرور پر دو چیزیں ایسی ہیں جنہیں دوبارہ حاصل نہیں کیا جا سکتا: Postgres database، جس میں آپ کی ایپس، صارفین، اور سیٹنگز ہوتی ہیں، اور وہ volume جو اپ لوڈ شدہ دستاویزات اور vector index کو اسٹور کرتا ہے۔ دونوں docker directory میں Docker volumes کے تحت ہوتے ہیں۔ انہیں ایک شیڈول پر snapshot کریں، اور snapshots کو سرور سے کاپی کر لیں۔ ایک model API key دوبارہ جاری کی جا سکتی ہے؛ وہ ایپ جسے بنانے میں آپ نے ایک ہفتہ لگایا ہو، اسے دوبارہ نہیں بنایا جا سکتا۔

زیادہ خود مختار (autonomous) کوڈ چلانے والے agent کے لیے، self-hosting Agent Zero دیکھیں، اور building your own AI agent on a VPS ان سب کے بنیادی ڈھانچے کا احاطہ کرتا ہے۔

FAQ

What are the system requirements to self-host Dify?

Dify تقریباً چھ containers کے ایک Docker Compose stack کے طور پر چلتا ہے، اس لیے کم از کم 2 GB RAM (بہتر ہے کہ 4 GB) کے ساتھ ایک VPS کا منصوبہ بنائیں، اس کے علاوہ کچھ CPU cores اور آپ کے اپ لوڈ شدہ دستاویزات اور 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 سرٹیفکیٹ کے ساتھ ایک reverse proxy لگائیں، Dify کے اپنے port کو loopback پر bind کریں، اور صرف HTTPS proxy کو انٹرنیٹ کے سامنے رہنے دیں۔ اسے ایک default-deny firewall کے ساتھ جوائن کریں جو IPv4 اور IPv6 دونوں کو کور کرتا ہو۔

How do I update a self-hosted Dify?

docker directory سے، git pull چلائیں، پھر نئے images حاصل کرنے اور restart کرنے کے لیے docker compose pull اور docker compose up -d چلائیں۔ پہلے release notes پڑھیں، کیونکہ Dify کبھی کبھی ورژن کے درمیان نئی .env variables شامل کرتا ہے، اور ایک missing variable container کو شروع ہونے سے روک سکتی ہے۔

What is the first thing to do after installing Dify?

/install پر جائیں اور فوری طور پر admin account بنائیں। جب تک وہ اکاؤنٹ موجود نہیں ہوتا، کوئی بھی جو پیج تک پہنچ سکتا ہے وہ اس پر قبضہ کر سکتا ہے۔ جیسے ہی containers healthy ہو جائیں، اسے سیٹ اپ کریں، اس سے پہلے کہ آپ firewall کو دنیا کے لیے کھولیں۔