
پروجیکٹ کا تعارف
DeepSeek Harness Easy-Setup Windows کے لیے ایک پیکیجنگ پروجیکٹ ہے۔ یہ @deepseek-ai/dsh کمانڈ لائن پروگرام، پورٹیبل Node.js رن ٹائم، لانچر اور اسٹاپر کو ایک انسٹالر میں یکجا کرتا ہے۔
حتمی صارف کو پہلے سے Node.js، npm یا دیگر انحصارات انسٹال کرنے کی ضرورت نہیں ہوتی۔ انسٹالیشن کے بعد ڈیسک ٹاپ یا اسٹارٹ مینو کے شارٹ کٹ سے dsh web شروع کیا جا سکتا ہے، اور سروس تیار ہونے کے بعد براؤزر خودکار طور پر کھل جاتا ہے۔
انسٹالیشن کے بعد کی خصوصیات
- ڈیسک ٹاپ اور اسٹارٹ مینو میں الگ الگ “DeepSeek Harness” شارٹ کٹ بنائے جاتے ہیں۔
- “DeepSeek Harness بند کریں” شارٹ کٹ بنایا جاتا ہے، جو چل رہی سروس کو ختم کرتا ہے۔
- لانچر
dsh webچلاتا ہے اور سروس شروع ہونے کے بعد براؤزر خودکار طور پر کھولتا ہے۔ - اسٹارٹ مینو میں ان انسٹال کرنے کا اختیار فراہم کیا جاتا ہے، اور Windows کی “Apps” فہرست میں بھی پروگرام دکھائی دیتا ہے۔
- ایپ کے آئیکن کے طور پر dsh فرنٹ اینڈ کا فراہم کردہ وہیل favicon استعمال ہوتا ہے۔
- موجودہ صارف کے لیے انسٹالیشن ہوتی ہے، اس لیے UAC کی اجازت درکار نہیں ہوتی۔
پہلے سے طے شدہ انسٹالیشن ڈائریکٹری یہ ہے:
%LOCALAPPDATA%\Programs\DeepSeekHarnessصارف انسٹالیشن وزرڈ میں کوئی دوسری ڈائریکٹری بھی منتخب کر سکتا ہے۔
پروجیکٹ ڈائریکٹری کو سمجھنا
بلڈ شروع کرنے سے پہلے چند اہم ڈائریکٹریوں کے مقاصد جان لینا مفید ہے:
build\build.ps1:مرکزی بلڈ انٹری پوائنٹ، جو dsh حاصل کرتا ہے، پورٹیبل Node.js ڈاؤن لوڈ کرتا ہے، آئیکن بناتا ہے، لانچر اور اسٹاپر کمپائل کرتا ہے، اور انسٹالر پیکیج بناتا ہے۔build\fetch-nsis.ps1:پورٹیبل NSIS 3.11 ڈاؤن لوڈ کرتا ہے اور SourceForge مرر دستیاب نہ ہونے پر دوسرے مررز آزماتا ہے۔src\Launcher.cs:لانچر کا سورس، جسے کمپائل کرنے کے بعدDeepSeekHarness.exeبنتا ہے۔src\Stopper.cs:اسٹاپر کا سورس، جسے کمپائل کرنے کے بعدDeepSeekHarnessStop.exeبنتا ہے۔src\installer.nsi:NSIS انسٹالیشن اسکرپٹ۔src\icon\build-icon.js:dsh کے فراہم کردہ sharp کو استعمال کرتے ہوئے وہیل SVG کو مختلف سائز کے ICO میں تبدیل کرتا ہے۔test\test-install.ps1:خاموش انسٹالیشن، فائلوں کی جانچ، آغاز، اسٹاپ، HTTP جانچ اور ان انسٹالیشن ٹیسٹ چلاتا ہے۔work\:Node.js آرکائیو، NSIS اور staging جیسی عارضی فائلیں محفوظ کرتا ہے۔ اسے حذف کیا جا سکتا ہے یا آئندہ بلڈ تیز کرنے کے لیے رکھا جا سکتا ہے۔out\:حتمی سنگل فائل انسٹالر محفوظ کرتا ہے۔
بلڈ ماحول تیار کریں
بلڈ مشین کو درج ذیل شرائط پوری کرنی چاہئیں:
- Windows 10 یا Windows 11 x64۔
- PowerShell 5.1۔
- .NET Framework 4.x۔
- Node.js انسٹال ہو اور
node.exePATH سے دستیاب ہو، یا بلڈ کے وقت اس کا راستہ واضح طور پر دیا جائے۔ nodejs.orgاور SourceForge تک رسائی۔
پروجیکٹ سسٹم میں موجود C# کمپائلر سے دو executable فائلیں کمپائل کرتا ہے۔ پہلے سے طے شدہ راستہ یہ ہے:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exeاگر سسٹم میں NSIS 3.x انسٹال نہ ہو تو بلڈ اسکرپٹ پورٹیبل ورژن کو خودکار طور پر work\nsis میں ڈاؤن لوڈ کر دے گا۔
اہم: پروجیکٹ کے راستے میں خالی جگہیں نہیں ہونی چاہئیں، کیونکہ
makensisکے کمانڈ لائن تعریف پیرامیٹرز خالی جگہوں والے راستوں کو درست طور پر سنبھال نہیں سکتے۔
پہلا مرحلہ: dsh انسٹال کریں
بلڈ اسکرپٹ پہلے سے طے شدہ طور پر عالمی npm ڈائریکٹری سے @deepseek-ai/dsh پڑھتا ہے۔ بلڈ مشین پر پہلے یہ کمانڈ چلائیں:
npm i -g @deepseek-ai/dshپیکیج کی پہلے سے طے شدہ ڈائریکٹری یہ ہے:
%APPDATA%\npm\node_modules\@deepseek-ai\dshاگر dsh کسی دوسری جگہ موجود ہو تو بعد میں -DshSource پیرامیٹر سے اس کا راستہ دیا جا سکتا ہے۔
دوسرا مرحلہ: سنگل فائل انسٹالر بنائیں
پروجیکٹ کی روٹ ڈائریکٹری میں جا کر یہ کمانڈ چلائیں:
powershell -ExecutionPolicy Bypass -File build\build.ps1اسکرپٹ بالترتیب dsh فائلیں، پورٹیبل Node.js، ایپ کا آئیکن، C# لانچر، اسٹاپر اور NSIS انسٹالیشن پیکیج تیار کرے گا۔ پہلے سے طے شدہ نتیجہ کچھ اس طرح ہوگا:
out\DeepSeekHarness-Setup-0.1.1.exeREADME میں دی گئی مثال کے مطابق انسٹالر کا حجم تقریباً 44 MB ہے۔
عام بلڈ پیرامیٹرز
-DshSource <ڈائریکٹری>:dsh پیکیج کی ڈائریکٹری متعین کرتا ہے۔-NodeExe <راستہ>:بلڈ مشین پر موجودnode.exeکا راستہ متعین کرتا ہے۔-AppVersion <ورژن>:انسٹالر کا ورژن نمبر تبدیل کرتا ہے۔-WorkDir <ڈائریکٹری>:عارضی فائلوں کی ڈائریکٹری تبدیل کرتا ہے۔-OutDir <ڈائریکٹری>:انسٹالر کے آؤٹ پٹ کی ڈائریکٹری تبدیل کرتا ہے۔
مثال کے طور پر حسب ضرورت dsh راستہ، Node.js راستہ اور ورژن نمبر استعمال کریں:
powershell -ExecutionPolicy Bypass -File build\build.ps1 -DshSource C:\dev\dsh -NodeExe C:\nodejs\node.exe -AppVersion 0.1.1 -OutDir C:\dsh-outputپہلے سے طے شدہ طور پر ورژن نمبر dsh کی package.json سے لیا جاتا ہے۔ پری ریلیز ورژن کو بنیادی ورژن میں تبدیل کر دیا جاتا ہے، مثلاً 0.1.1-rc.2 سے 0.1.1 بنے گا۔
work\ میں موجود فائلیں محفوظ رہتی ہیں اور دوبارہ استعمال کی جاتی ہیں۔ Node.js آرکائیو ڈاؤن لوڈ ہونے کے بعد اسے دوبارہ ڈاؤن لوڈ نہیں کیا جاتا، اور extract کیا ہوا NSIS ڈائریکٹری بھی دوبارہ استعمال ہوتی ہے۔
تیسرا مرحلہ: انسٹالیشن اور بنیادی استعمال
بلڈ مکمل ہونے کے بعد out\ ڈائریکٹری میں موجود انسٹالر پر ڈبل کلک کریں اور وزرڈ کے ذریعے انسٹالیشن مکمل کریں۔ موجودہ صارف کے لیے انسٹالیشن ہونے کی وجہ سے پہلے سے طے شدہ طور پر UAC کی اجازت کا اشارہ ظاہر نہیں ہوگا۔
- ڈیسک ٹاپ یا اسٹارٹ مینو میں موجود “DeepSeek Harness” پر ڈبل کلک کریں۔
- لانچر
dsh webچلاتا ہے۔ - سروس دستیاب ہونے کے بعد پہلے سے طے شدہ براؤزر متعلقہ صفحہ خودکار طور پر کھول دیتا ہے۔
- سروس روکنے کے لیے “DeepSeek Harness بند کریں” چلائیں۔
- پروگرام ہٹانے کے لیے اسٹارٹ مینو کے ان انسٹال اختیار یا Windows کی “Apps” فہرست سے ان انسٹال کریں۔
پہلے سے طے شدہ ڈائریکٹری میں خاموش انسٹالیشن بھی کی جا سکتی ہے:
out\DeepSeekHarness-Setup-0.1.1.exe /Sچوتھا مرحلہ: خودکار ٹیسٹ چلائیں
پروجیکٹ مکمل انسٹالیشن کے عمل کا احاطہ کرنے والا ٹیسٹ اسکرپٹ فراہم کرتا ہے:
powershell -ExecutionPolicy Bypass -File test\test-install.ps1ٹیسٹ اسکرپٹ درج ذیل کارروائیاں کرے گا:
- پروجیکٹ کے اندر موجود
testinstall\میں خاموش انسٹالیشن کرے گا۔ - انسٹالیشن فائلوں اور شارٹ کٹس کو ایک ایک کر کے جانچے گا۔
- لانچر اور اسٹاپر کے رویے کی تصدیق کے لیے مصنوعی انٹری پوائنٹ استعمال کرے گا۔
- انسٹالیشن ڈائریکٹری میں موجود پورٹیبل Node.js سے واقعی ایک بار
dsh webشروع کرے گا۔ - HTTP 200 جواب کی جانچ کے لیے پہلے سے طے شدہ ٹیسٹ پورٹ
3999استعمال کرے گا، تاکہ عام3080پورٹ پر قبضہ نہ ہو۔ - ان انسٹالیشن کرے گا اور نتیجے کی جانچ کرے گا۔
آؤٹ پٹ میں ### سے شروع ہونے والی متعدد جانچ معلومات ظاہر ہوں گی۔ آخری لائن یہ ہونی چاہیے:
ALL CHECKS PASSEDاگر ٹیسٹ ناکام ہو تو آخر میں ناکام آئٹمز کی تعداد دکھائی جائے گی۔
توجہ: ٹیسٹ کے بنائے ہوئے شارٹ کٹ کے نام باقاعدہ انسٹالیشن جیسے ہی ہوتے ہیں، اس لیے ٹیسٹ چلاتے وقت موجودہ صارف کے ڈیسک ٹاپ اور اسٹارٹ مینو کے شارٹ کٹ عارضی طور پر
testinstall\کی طرف اشارہ کریں گے اور ان انسٹالیشن کے مرحلے میں حذف ہو جائیں گے۔ ٹیسٹ مکمل ہونے کے بعد باقاعدہ انسٹالیشن بحال کرنے کے لیے انسٹالر کی خاموش انسٹالیشن کمانڈ دوبارہ چلائیں۔
رن ٹائم لاگ اور خرابیوں کی جانچ
چلنے کے دوران اہم اسٹیٹس فائلیں یہاں محفوظ ہوتی ہیں:
%LOCALAPPDATA%\DeepSeekHarness\pid.txt
%LOCALAPPDATA%\DeepSeekHarness\run.logpid.txtچلتے ہوئے dsh پراسیس کا نمبر محفوظ کرتا ہے، اور اسٹاپر اسی کی مدد سے ہدف پراسیس تلاش کرتا ہے۔run.logdsh کا معیاری آؤٹ پٹ اور معیاری خرابی محفوظ کرتا ہے۔
اگر آغاز ناکام ہو جائے تو لانچر پاپ اپ کے ذریعے run.log کا مقام دکھاتا ہے۔ خرابی کی جانچ کرتے وقت پہلے اسی لاگ کو دیکھیں اور پورٹ کے استعمال، انحصار لوڈ ہونے یا سروس شروع ہونے کی خرابیوں کی تصدیق کریں۔
اعلیٰ درجے کی تجاویز اور نفاذ سے متعلق اہم نکات
Node.js ورژن کو native modules کے ساتھ ہم آہنگ رکھیں
dsh کے انحصارات میں node-pty، sharp اور koffi جیسے native modules شامل ہیں۔ پورٹیبل Node.js ان modules کے ساتھ ہم آہنگ ہونا چاہیے، اسی لیے بلڈ اسکرپٹ پہلے سے طے شدہ طور پر بلڈ مشین کے برابر Node.js ورژن منتخب کرتا ہے۔ -NodeExe تبدیل کرتے وقت دوبارہ تصدیق کریں کہ انسٹالر معمول کے مطابق شروع ہو سکتا ہے۔
سروس کو دوبارہ شروع ہونے سے روکیں
جب پہلے سے طے شدہ 3080 پورٹ پر dsh پہلے ہی چل رہا ہو تو لانچر پر دوبارہ ڈبل کلک کرنے سے دوسرا instance نہیں بنتا۔ لانچر pid فائل میں موجود پراسیس کے زندہ ہونے کی جانچ کرتا ہے اور موجودہ سروس کا صفحہ براہ راست کھول دیتا ہے۔
لانچر کو بہت جلد بند نہ ہونے دیں
dsh شروع کرنے کے بعد لانچر پس منظر میں میزبان پراسیس کے طور پر موجود رہتا ہے، اور dsh کے بند ہونے تک معیاری آؤٹ پٹ اور معیاری خرابی کو مسلسل run.log میں لکھتا رہتا ہے۔ اگر لانچر فوراً بند ہو جائے تو آؤٹ پٹ پائپ ٹوٹ جائے گی اور dsh کے بعد میں لاگ لکھتے وقت EPIPE ظاہر ہو سکتا ہے۔
NSIS ان انسٹالیشن مکمل ہونے کا درست انتظار کریں
NSIS ان انسٹالر پہلے خود کو %TEMP% میں کاپی کرتا ہے، پھر عارضی ڈائریکٹری سے عمل جاری رکھتا ہے، اس لیے اصل ان انسٹال پراسیس جلد ختم ہو جاتا ہے۔ لہٰذا خودکار اسکرپٹ کو صرف اصل پراسیس کے ختم ہونے کا انتظار نہیں کرنا چاہیے، بلکہ یہ بھی جانچنا چاہیے کہ انسٹالیشن ڈائریکٹری ختم ہو گئی ہے۔ پروجیکٹ کی test-install.ps1 میں اس کا نفاذ موجود ہے۔
انسٹالیشن اسکرپٹ کی encoding کا خیال رکھیں
installer.nsi کو UTF-8 BOM یا UTF-16LE میں ہونا چاہیے، ورنہ NSIS Bad text encoding کی اطلاع دے گا۔ ریپوزٹری کی سورس فائل UTF-8 اور BOM کے بغیر ہے، جبکہ build.ps1، makensis چلانے سے پہلے اسے UTF-16LE میں تبدیل کرتا ہے۔
انسٹالر کا حجم قابو میں رکھیں
پیکیجنگ کے دوران Windows x64 ماحول میں لوڈ نہ ہونے والی فائلیں ہٹا دی جاتی ہیں، جن میں node-pty کی Darwin، Linux اور ARM64 پری کمپائلڈ فائلیں اور sharp کا WASM ورژن شامل ہیں۔ README کے مطابق اس عمل سے تقریباً 30 MB جگہ بچ سکتی ہے۔
لائسنس کی وضاحت
dsh خود MIT لائسنس کے تحت ہے۔ مکمل متن dsh پیکیج میں موجود LICENSE میں دیکھا جا سکتا ہے۔ اس پروجیکٹ کے انسٹالر اسکرپٹ بھی MIT لائسنس کے تحت جاری کیے گئے ہیں۔ وہیل آئیکن dsh کے فرنٹ اینڈ وسائل سے لیا گیا ہے اور اس کے حقوق DeepSeek کے پاس ہیں۔
خلاصہ
DeepSeek Harness Easy-Setup نے dsh، پورٹیبل Node.js، Windows کے آغاز اور اسٹاپ پروگراموں اور NSIS انسٹالیشن کے عمل کو ایک ساتھ یکجا کیا ہے۔ ماحول تیار کرنے کے بعد صرف dsh کو عالمی سطح پر انسٹال کریں اور build\build.ps1 چلائیں، اس کے بعد ایسا سنگل فائل انسٹالر تیار ہو جائے گا جس کے لیے ہدف مشین پر Node.js پہلے سے انسٹال ہونا ضروری نہیں۔ ریلیز سے پہلے مکمل ٹیسٹ اسکرپٹ چلانے کے ساتھ لاگز، Node.js ورژن کی مطابقت اور شارٹ کٹ بحالی کو خاص طور پر جانچنے کی تجویز ہے۔
