موجه الروابط المختصرة لـ Discourse | تبسيط عناوين URL للدعم

هل تمنيت يومًا أن يكون لديك زر “تثبيت هذا القالب على موقعك” لكل شيء؟ لقد طوّرت موقعًا للقيام بذلك! يمكنك استخدامه على https://discourserouter.pyxfluff.dev.

بدلًا من قول شيء مثل:

يمكنك مشاهدة هذا على example.com/admin/config/emoji/settings.

… يمكنك الآن فعل:

إليك المكان الذي يمكنك من خلاله تغيير هذا: https://discourserouter.pyxfluff.dev/admin/config/emoji/settings

عند زيارة الموقع لأول مرة، سيُطلب منك إضافة موقعك، لكنه سيتم تذكره في ملف تعريف ارتباط (cookie) بحيث يمكنك استخدام نفس الموقع في المستقبل. إنه استبدال مباشر للمسار، ولا يلزم وجود بادئة مسار. ما عليك سوى استبدال رابط منتداك بـ discourserouter.pyxfluff.dev!

معرض الأعمال


يرجى ملاحظة أن هذا المنتج لا يزال جديدًا وقد تكون هناك مشاكل! يمكنك الإبلاغ عن جميع المشاكل والأفكار وغيرها من الملاحظات في هذا الموضوع هنا. لقد قمت بالاختبار بأفضل ما أستطيع، لكن لا يمكن أن تكون متأكدًا بنسبة 100٪ أبدًا.

الكود المصدري متاح على GitHub كمشروع Python (FastAPI)، والترقيات (PRs) مرحب بها دائمًا.

التكاليف التشغيلية

حاليًا، لا يكلف تشغيل هذا أي شيء لأنني أشغله على خادمي المنزلي، لذا لا توجد رسوم سحابية إضافية على رسوم النطاق البالغة 10 دولارات في السنة. ومع ذلك، أطمح في النهاية إلى توسيع نطاق هذا المنتج ليصبح له نطاق خاص به. لا أملك حاليًا رابط تبرع عام، ولكن إذا كنت ترغب في رعاية نطاق مناسب، فيرجى التواصل معي عبر الرسائل الخاصة وسنعمل على ترتيب شيء ما.

استمتع وأخبرني برأيك! :slight_smile:

إعجابَين (2)

في الأساس، تحصل على معلومات عن من نقر على رابط هنا وإلى أين توجه، إذا كان مشتركًا في هذا :thinking: أو كيف يعمل هذا؟

لأجل الشفافية، إليك سجلات الخادم عندما قمت بالاختبار محليًا:

لقد تركت سجل تطوير بالخطأ؛ ومع ذلك، فقد تم تعطيله في بيئة الإنتاج اعتبارًا من هذا الالتزام. لا يمكنني فعل الكثير بشأن تسجيل Uvicorn لطلبات الوصول إلى نقطة النهاية (ولست متأكدًا من أن هذا أمر أرغب فيه أصلاً لأسباب أمنية)، لكن هدفي هو عدم تسجيل عناوين نقاط النهاية لأنني أؤمن بالخصوصية. وعلى أي حال، فإن سجلات الخادم موجودة في وحدة systemd ليس لدي نية لسحبها إلا إذا كان ذلك ضروريًا تمامًا لتتبع خطأ أو شيء مشابه.

الموقع الإلكتروني متصل أيضًا بحساب PA الخاص بي، لذا يمكنني معرفة عدد المستخدمين دون تحليلات غازية. الخلاصة هنا هي أنني لا أتتبع عنوان IP الخاص بك، أو عنوان الموقع، أو أي شيء تقريبًا. كل ما أستطيع رؤيته هو أن شخصًا ما زار الموقع وتم إعادة توجيهه. لا تتردد في إخباري إذا كان لديك أي مخاوف، لكن مسألة “تسجيل Uvicorn لطلبات إعادة التوجيه” هي مجرد عيب في التصميم ناتج عن الطريقة التي قررت بها بناء التطبيق (عبر ملفات تعريف الارتباط و Jinja2).

وبالطبع، إذا لم تثق بي لأي سبب من الأسباب، فيمكنك استضافته بنفسك (سأقوم بإعداد دليل غداً)، لكن يمكنك مراجعة الكود بنفسك، حيث يتم تشغيل الحاوية بشكل متماثل مع GitHub. :slight_smile:

من الواضح أنني لا أثق بك. وقلة قليلة فقط هي من يجب أن تثق بك. فأنت مجرد اسم مستخدم آخر بلا وجه على الإنترنت.

لكن هل أقبل منك ذلك نعم، ستحصل على تلك المعلومات؟

إعجاب واحد (1)

لا، عنوان موقع الويب موجود في ملف تعريف ارتباط (cookie) للمتصفح ولا يتم حفظه في سجلات الخادم.

أفضل ما يمكنني فعله هو نشر المصدر المنعكس، وإظهار السجلات، وشرح التقنيات التي يستخدمها الموقع بوضوح (كل ذلك على بنيتي التحتية الخاصة). إذا قررت عدم مراجعة هذه المعلومات أو لم تصدقني بعد، فلا يوجد الكثير الذي يمكنني فعله لك :man_shrugging:

إعجاب واحد (1)

مرحبًا بالجميع! لقد قمت بإعداد استبيان سريع لمساعدتي في تحديد الموارد التي سأخصصها لهذا المشروع (وقت الصيانة الشخصية، مادي، إلخ). بغض النظر عن رأيكم في المشروع في حالته الحالية، فإن ملء النموذج سيساعدني كثيرًا (هناك مكان لذكر ما لا يعجبكم فيه إذا أجبتوا بـ ‘لا’ على السؤال الأول). شكرًا لكم! :slight_smile:

المشكلة التي أواجهها مع هذا النوع من الخدمات هي أنها قد تتوقف في المستقبل، وقد يتم إعادة توجيه الروابط إلى شيء ضار.

لا أشك في نواياك الحسنة، لكن تجربتي تُظهر أن هذا يحدث[1]، لذا أفضل عدم الاعتماد عليه على الإطلاق إذا كان بالإمكان تجنبه.


  1. في منتدى قمت بنقله، كانت العديد من الصور مستضافة على خدمة طرف ثالث أعادت توجيه جميع روابط الصور بعد بضع سنوات :upside_down_face: ↩︎

إعجابَين (2)

مرحبًا بالجميع، نظرًا لـ انخفاض الاستخدام، سأقوم بإيقاف النسخة المستضافة رسميًا بشكل استباقي. أفعل ذلك لأنه لا توجد أدلة على استخدامه في أي مكان (مؤكدة بانعدام عدد مرات الوصول في التحليلات هذا الأسبوع)، لذا لا أريد أن يصادف شخص ما هذه النسخة ويستخدمها، ثم يضطر لاحقًا إلى التعامل مع روابط معطلة.

كان هذا مجرد مشروع ممتع لنهاية الأسبوع، لذا لستُ منزعجًا كثيرًا، وسيبقى مستودع GitHub نشطًا، وسأقوم بإصلاح أي مشاكل حرجة إذا تم إبلاغي بها، لكن لا توجد تحديثات جديدة حاليًا. يستخدم تقريبًا مواردًا ضئيلة جدًا للتشغيل، لذا يمكن تشغيله على أي نظام يدعم بايثون الحديثة. يمكن إعادة توظيفه تقريبًا لأي غرض؛ لقد قمتُ بتسميته “discourse router” بالصدفة لأن هذا كان الغرض الأصلي.

إعجابَين (2)

ظننت أنني وعدت بكتابة ملف README في وقت سابق، لكن يبدو أنني لم أفعل ذلك. بغض النظر، لقد نشرت دليلًا بسيطًا حول كيفية الاستضافة الذاتية أو إعادة التوظيف! لا يزال المستودع موجودًا على GitHub، لكنني سألصقه أدناه في حال كنت لا ترغب في مغادرة هذه الصفحة لسبب ما.

التعليمات

الإعداد

تأكد من وجود بيئة افتراضية (venv) وإصدار Python 3.13 أو أحدث (تم اختباره فقط على الإصدار 3.14، لكن 3.13 لا ينبغي أن يواجه مشاكل؛ إذا واجهت أخطاء في التجميع، فقم ببساطة بتحديث Python):

uv venv
source .venv/bin/activate
uv pip install .

قم بتعديل ملف الإعدادات اختياريًا:

nano src/backend_config.jsonc

معظم الإعدادات واضحة بذاتها. web.hostname مخصص لأغراض جمالية فقط في واجهة المستخدم ولا يؤثر على الوظائف.

وهذا كل شيء! قم بتشغيله:

python3 -m src

لا تحتاج إلى تنفيذ تطبيق uvicorn يدويًا، حيث سيقوم وحدة Python بتنفيذه تلقائيًا.

إعجاب واحد (1)