[{"data":1,"prerenderedAt":153},["ShallowReactive",2],{"seo-verification":3,"blog-استضافة-pds-bluesky-على-vps-بواسطة-بروتوكول-at-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"slugs":9,"title":12,"excerpt":13,"readTime":14,"views":15,"isPinned":16,"publishedAt":17,"category":18,"categories":24,"featuredImage":26,"bgImage":27,"posterImage":28,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":91,"ctaBody":92,"ctaButton":93,"ctaUrl":94,"relatedPosts":95},305,"استضافة-pds-bluesky-على-vps-بواسطة-بروتوكول-at",{"fr":10,"en":11,"ar":8},"heberger-son-pds-bluesky-at-protocol-vps","host-your-bluesky-pds-on-a-vps-with-the-at-protocol","استضافة PDS Bluesky على VPS بواسطة بروتوكول AT","نشر Personal Data Server الخاص بـ Bluesky على VPS: DID محمول، DNS wildcard، TLS تلقائي مع Caddy وWatchtower. يكفي 512 ميغابايت RAM.",9,0,false,"2026-08-26T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},7,"الاستضافة الذاتية","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[25],{"id":19,"name":20,"slug":21,"color":22,"icon":23},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-son-pds-bluesky-at-protocol-vps-poster.svg",{"categorySlug":30,"appSlug":31},"التطوير","docker-starter","يفصل بروتوكول AT‏ (atproto) هويتك على Bluesky عن الخادم الذي يستضيفها. طالما يقيم حسابك على bsky.social، فإن شركة Bluesky Inc.‏ هي من تتحكم في DID الخاص بك. استضافة Personal Data Server الخاص بك على VPS تنقل هذه السيطرة إليك: منشوراتك ومتابعوك ومعرّفك يرافقونك مهما كان مستقبل المنصة. يوفر المستودع الرسمي github.com\u002Fbluesky-social\u002Fpds مكدس Compose جاهزاً يتضمن Caddy‏ (TLS تلقائي) وWatchtower (تحديثات تلقائية)، بعبء صيانة مماثل لأي خدمة Docker أخرى.",[34,38,50,53,78,81,85,88],{"type":35,"title":36,"body":37},"h2","امتلاك هويتك على Bluesky","تعتمد قابلية النقل في بروتوكول AT على فصل صارم بين DID ‏(Decentralized Identifier) وخادم PDS الذي يخزن بياناتك ومُرحِّل الشبكة. وثيقة DID الخاصة بك، الموقّعة تشفيرياً من خادمك، تسرد مفاتيح التوقيع ونقطة الوصول للخدمة التي تحتضن مستودعك. تغيير PDS يحدّث هذه الوثيقة دون تعديل DID نفسه: متابعوك لا يلاحظون شيئاً، روابط ملفك الشخصي تبقى صالحة، ومعرّفك يظل كما هو.\n\nطالما تفوّض هذه الاستضافة إلى bsky.social، تبقى قابلية النقل نظرية. نقلها إلى VPS تديره بنفسك يجعلها فعلية: أنت تتحكم في المفاتيح، وتضع قواعد التسجيل، ولا يمكن لأي قرار سياسي خارجي أن يحرمك من مستودع منشوراتك.",{"type":39,"title":40,"items":41},"ul","مزايا استضافة PDS ذاتياً",[42,43,44,45,46,47,48,49],"يصبح معرّفك على Bluesky نطاقاً فرعياً من نطاقك الخاص، مثلاً `you.your-domain.com`.","تُخزَّن منشوراتك وإعجاباتك ومتابعاتك في مستودع موقَّع تشفيرياً على خادمك — أنت المالك الوحيد.","إن غيّرت bsky.social سياساتها، لن تكلّفك عملية النقل أي متابع أو منشور: بروتوكول AT ينقل المستودع بالكامل.","أنت تدير قائمة الحسابات المقبولة عبر نظام رموز الدعوة: يمكن إنشاء نسخة شخصية مغلقة تماماً.","Watchtower يراقب صورة PDS ويشغّل التحديثات تلقائياً دون تدخل يدوي.","Caddy يدير TLS وتجديد الشهادات، بما فيها wildcard DNS المطلوب لنطاقات المعرّفات الفرعية.","استهلاك الذاكرة في وضع الاستعداد نحو 512 ميغابايت: متوافق مع معظم VPS للمبتدئين.","الكود منشور برخصة MIT على github.com\u002Fbluesky-social\u002Fpds؛ لا توجد نسخة مؤسسية مدفوعة.",{"type":35,"title":51,"body":52},"المتطلبات الدنيا","يكفي VPS بذاكرة 512 ميغابايت ونواة واحدة للاستخدام الشخصي (من حساب إلى خمسة حسابات). خصّص 20 جيجابايت على الأقل من تخزين SSD للوسائط وسجل المنشورات. للاستخدام الجمعياتي بحوالي عشرة حسابات، يوفر 1 جيجابايت RAM و40 جيجابايت هامشاً أكبر.\n\nعلى صعيد الشبكة، يجب أن يكون المنفذان 80 و443 قابلَين للوصول من الخارج. يحافظ PDS على اتصال WebSocket دائم بشبكة Bluesky: تأكد من أن جدار الحماية لا يقطع الاتصالات الطويلة الخاملة.\n\nDNS: سجل A‏ wildcard من نوع `*.your-domain.com` يشير إلى IP الخاص بـ VPS إلزامي. يتيح لكل نطاق فرعي للمعرّف الحل دون إضافة سجل DNS منفصل لكل حساب. إن لم يدعم مسجّلك النطاقات العامة، يمكن تهيئة المعرّف يدوياً عبر سجل TXT لـ `_atproto.your-domain.com`، لكنه أكثر تعقيداً.\n\nالبرامج المطلوبة: Docker وDocker Compose v2. لا حاجة لأي تبعية أخرى؛ Compose الرسمي يجمع Caddy وWatchtower وPDS في شبكة داخلية معزولة.",{"type":54,"title":55,"steps":56},"steps","التثبيت خطوة بخطوة",[57,60,63,66,69,72,75],{"title":58,"body":59},"استنساخ المستودع الرسمي","اتصل بـ VPS عبر SSH واستنسخ المستودع المرجعي. الفرع `main` هو الفرع المستقر الذي يوصي به المشرفون: `git clone https:\u002F\u002Fgithub.com\u002Fbluesky-social\u002Fpds \u002Fopt\u002Fpds`. ثم انتقل إلى المجلد بـ `cd \u002Fopt\u002Fpds`.",{"title":61,"body":62},"إنشاء ملف البيئة","انسخ ملف المثال من المستودع: `cp .env.example .env`.\n\nعيّن على الأقل `PDS_HOSTNAME` (نطاقك الجذري، بدون wildcard، مثلاً `your-domain.com`)، و`PDS_JWT_SECRET`، و`PDS_ADMIN_PASSWORD`. أنشئ قيماً عشوائية قوية: `openssl rand -hex 32` تنتج سلسلة من 64 حرفاً مناسبة لكل سر.",{"title":64,"body":65},"تهيئة DNS الـ wildcard","في واجهة مسجّلك أو Cloudflare، أنشئ سجل A من نوع `*.your-domain.com` يشير إلى عنوان IP الخاص بـ VPS.\n\nعادةً ما يستغرق الانتشار بضع دقائق، وأحياناً حتى 24 ساعة. تحقق بـ `dig +short test.your-domain.com @1.1.1.1` قبل المتابعة: إن كانت الاستجابة فارغة، انتظر.",{"title":67,"body":68},"تشغيل الخدمات","يشغّل Compose الرسمي PDS وCaddy وWatchtower بأمر واحد: `docker compose up -d`.\n\nيحصل Caddy تلقائياً على شهادة TLS لـ `your-domain.com` و`*.your-domain.com`. تابع السجلات بـ `docker compose logs -f caddy` للتأكد من نجاح التحقق قبل إنشاء أول حساب.",{"title":70,"body":71},"إنشاء أول حساب","تعرض صورة PDS أمر إدارة سطري. أنشئ حسابك: `docker compose exec pds \u002Fpds\u002Fbin\u002Fcreate-account --handle you.your-domain.com --email you@your-domain.com --password \u003Cكلمة_المرور>`.\n\nافتح تطبيق Bluesky، واختر \"خادم مخصص\" (العنوان: `https:\u002F\u002Fyour-domain.com`)، وأدخل رمز الدعوة المُعاد وأكمل إنشاء الحساب.",{"title":73,"body":74},"الترحيل من bsky.social (إن اقتضى الأمر)","إن كان لديك حساب على bsky.social، يتيح بروتوكول AT الترحيل دون خسارة. في تطبيق Bluesky: الإعدادات ← إدارة الحساب ← ترحيل الحساب. أدخل عنوان PDS الخاص بك (`https:\u002F\u002Fyour-domain.com`) واتبع الخطوات. يُحدَّث DID الخاص بك للإشارة إلى خادمك؛ متابعوك لا يحتاجون إلى أي إجراء — يرونك دائماً في خلاصتهم.",{"title":76,"body":77},"التحقق من التثبيت","افتح `https:\u002F\u002Fyour-domain.com\u002Fxrpc\u002Fcom.atproto.server.describeServer` في متصفح.\n\nتؤكد استجابة JSON أن PDS الخاص بك قابل للوصول وأن TLS صالح. ثم ابحث عن `@you.your-domain.com` في تطبيق Bluesky للتحقق من حل المعرّف بشكل صحيح.",{"type":35,"title":79,"body":80},"الإعداد بعد التثبيت","رموز الدعوة. افتراضياً، التسجيل مغلق: لا يمكن لأي حساب الانضمام إلى PDS إلا برمز دعوة. أنشئ رموزاً إضافية بـ `docker compose exec pds \u002Fpds\u002Fbin\u002Fcreate-invite-code`. للاستخدام الشخصي الصارم، هذا القيد هو الإعداد الموصى به.\n\nالمراقبة بـ Watchtower. Watchtower موجود مسبقاً في Compose الرسمي ويراقب صورة PDS. بمجرد نشر نسخة جديدة في سجل الصور، يسحب الصورة ويعيد تشغيل الخدمة دون أي تدخل منك. لتلقي إشعار بكل تحديث، أضف `WATCHTOWER_NOTIFICATION_EMAIL=you@your-domain.com` إلى ملف `.env`.\n\nالنسخ الاحتياطية. يحتوي مجلد `data\u002F` (قابل للتهيئة عبر `PDS_DATA_DIRECTORY`) على قاعدة بيانات SQLite والوسائط. جدوِل نسخاً احتياطية منتظمة: المجلد متسق في وضع البرود إن أوقفت الخدمات بـ `docker compose stop` قبل نسخه.",{"type":82,"title":83,"body":84},"tip","تصليب الأمان الموصى به","أضف `PDS_REGISTRATION_DISABLED=true` إلى `.env` لاشتراط رمز دعوة لأي تسجيل. أعد تشغيل PDS بـ `docker compose restart pds` بعد التغيير.\n\nاختبر بانتظام استعادة نسخك الاحتياطية بتشغيل PDS مؤقت على مجلد ثانٍ: نسخة احتياطية غير مختبرة ليست نسخة احتياطية. قاعدة بيانات SQLite تالفة بدون استعادة صالحة تعني فقدان جميع المنشورات.",{"type":35,"title":86,"body":87},"استكشاف الأخطاء الشائعة","DNS لم ينتشر بعد. إن عجز Caddy عن الحصول على شهادة، يُظهر `docker compose logs caddy` رسالة `failed to obtain certificate`. تحقق من حل الـ wildcard بـ `dig *.your-domain.com @1.1.1.1`: استجابة فارغة تعني أن السجل غير موجود بعد أو لم ينتشر.\n\nخطأ في الشهادة (منافذ محجوبة). إن وُجد سجل DNS لكن فشل تحقق TLS-ALPN، فالأرجح أن جدار الحماية يحجب المنفذ 80 أو 443. على VPS بـ `ufw`، تحقق من `ufw status` واسمح بالمنفذين: `ufw allow 80\u002Ftcp && ufw allow 443\u002Ftcp`.\n\nفشل ترحيل DID. إن أعاد تطبيق Bluesky خطأ أثناء الترحيل، تأكد أن PDS الخاص بك يستجيب من الخارج (نقطة `describeServer` أعلاه). يتصل الترحيل بخادمك من خوادم bsky.social: انتهاء المهلة يشير إلى مشكلة شبكة أو شهادة غير صالحة.\n\nالمعرّف لا يحل. إن لم يحل `@you.your-domain.com` في تطبيق Bluesky، تحقق من انتشار wildcard DNS وأن نقطة `\u002F.well-known\u002Fatproto-did` على نطاقك الفرعي تستجيب بـ DID الصحيح (`curl https:\u002F\u002Fyou.your-domain.com\u002F.well-known\u002Fatproto-did`).",{"type":35,"title":89,"body":90},"لمزيد من العمق","يندمج PDS المستضاف ذاتيًا بسهولة في بنية Docker قائمة. يغطي دليل \u003Ca href=\"\u002Fblog\u002Fdeployer-avec-caddy\">النشر مع Caddy\u003C\u002Fa> سيناريوهات reverse proxy متعددة الخدمات على نفس الـ VPS. إن أردت أيضاً استضافة forge Git الخاص بك، يتبع دليل \u003Ca href=\"\u002Fblog\u002Fheberger-forgejo\">Forgejo على VPS\u003C\u002Fa> نفس نموذج Compose. لتأمين الوصول الإداري إلى خدماتك المستضافة ذاتيًا دون تعريضها مباشرة للإنترنت، يقدم دليل \u003Ca href=\"\u002Fblog\u002Fself-host-headscale-tailscale-vps\">Headscale\u002FTailscale على VPS\u003C\u002Fa> بديلاً عن بوابة SSH.","VPS جاهز لـ PDS Bluesky الخاص بك","انشر Personal Data Server على VPS عالي الأداء، قابل للتهيئة في دقائق. بياناتك، بنيتك التحتية.","اكتشف خطط VPS","\u002Fsolutions\u002Fdeveloppeurs",[96,116,131],{"id":97,"slug":98,"slugs":99,"title":102,"excerpt":103,"readTime":104,"views":15,"isPinned":16,"publishedAt":105,"category":106,"categories":110,"featuredImage":26,"bgImage":27,"posterImage":112,"relatedSolution":113},39,"انشر-تطبيقاتك-باستخدام-caddy-على-خادم-vps",{"fr":100,"en":101,"ar":98},"deployer-avec-caddy","deploy-your-applications-with-caddy-on-a-vps","انشر تطبيقاتك باستخدام Caddy على خادم VPS","انشر Caddy على خادم VPS الخاص بك: خادم ويب ووكيل عكسي مع HTTPS تلقائي. ملف Caddyfile من بضعة أسطر يكفي للانتقال إلى الإنتاج.",3,"2026-05-12T00:00:00+00:00",{"id":104,"name":107,"slug":108,"color":109,"icon":108},"النشر","deploiement","bg-success\u002F10 text-success",[111],{"id":104,"name":107,"slug":108,"color":109,"icon":108},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-caddy-poster.svg",{"categorySlug":114,"appSlug":115},"نشر-التطبيقات-وdevops","caddy",{"id":117,"slug":118,"slugs":119,"title":122,"excerpt":123,"readTime":124,"views":125,"isPinned":16,"publishedAt":126,"category":127,"categories":128,"featuredImage":26,"bgImage":27,"posterImage":130,"relatedSolution":26},75,"استضافة-forgejo-على-خادم-vps-الخاص-بك",{"fr":120,"en":121,"ar":118},"heberger-forgejo","host-forgejo-on-your-own-vps","استضافة ‎Forgejo‎ على خادم VPS: دليل شامل 2025","انشر ‎Forgejo‎ على خادم ‎VPS‎ باستخدام ‎Docker‎ و‎SSL‎ و‎Actions runners‎ مع تأمين متقدم. دليل خطوة بخطوة لإقامة مخزن ‎Git‎ مستقل.",10,1,"2026-04-06T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},[129],{"id":19,"name":20,"slug":21,"color":22,"icon":23},"\u002Fblog\u002Fcovers\u002Fheberger-forgejo-poster.svg",{"id":132,"slug":133,"slugs":134,"title":137,"excerpt":138,"readTime":139,"views":15,"isPinned":16,"publishedAt":140,"category":141,"categories":147,"featuredImage":26,"bgImage":27,"posterImage":149,"relatedSolution":150},164,"استضافة-headscale-على-vps-خادم-تحكم-tailscale-خاص-بك",{"fr":135,"en":136,"ar":133},"self-host-headscale-tailscale-vps","self-host-headscale-on-a-vps-your-own-tailscale-control-server","استضافة Headscale على VPS: خادم تحكّم Tailscale خاص بك","استبدل خادم التحكم السحابي لـ Tailscale بـ Headscale على خادم VPS الخاص بك — مستخدمون غير محدودين، وشبكة WireGuard متشابكة كاملة، وmagic DNS وقوائم ACL، دون أي اعتماد على SaaS.",5,"2026-07-05T00:00:00+00:00",{"id":142,"name":143,"slug":144,"color":145,"icon":146},8,"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[148],{"id":142,"name":143,"slug":144,"color":145,"icon":146},"\u002Fblog\u002Fcovers\u002Fself-host-headscale-tailscale-vps-poster.svg",{"categorySlug":151,"appSlug":152},"الشبكات-وvpn","headscale",1787744378400]