مقدمة:
BookStack نظام توثيق مفتوح المصدر يعمل عبر الويب، ويتيح إنشاء مخزن معرفة منظم للاستخدام الشخصي أو لفريق أو شركة. ويركز على سهولة الاستخدام والتصميم ليناسب جمهورًا متفاوت المهارات التقنية. وقد بُني على إطار PHP المسمى Laravel ، مع MySQL أو MariaDB لتخزين البيانات.
أنشأت BookStack بعد محاولة العثور على نظام توثيق أو ويكي لمكان عملي. وكان Confluence الأقرب إلى متطلباتي، لكن تسعيره بحسب المستخدمين شكّل حاجزًا، كما أثارت طبيعته المغلقة أسئلة عن بقاء الوثائق التي سأبنيها. فقررت إنشاء منصتي الخاصة، وأطلقتها بترخيص MIT ردًا للجميل إلى مجتمع المصدر المفتوح الذي أحببته واستفدت منه سنوات.
هرمية المحتوى وتنظيمه
ليظل النظام مألوفًا وبديهيًا، يستخدم مصطلحات الكتب الواقعية: يُنشأ المحتوى في «صفحة»، وتنتمي الصفحة إلى «كتاب»، ويمكن جمع الصفحات اختياريًا داخل «فصول». ومع نمو التوثيق، تُستخدم «الرفوف» لتصنيف الكتب، ويمكن أن ينتمي الكتاب إلى أكثر من رف.
هذه البنية جوهر BookStack ، وقد تكون العامل الحاسم الذي يحببه للمستخدم أو يجعله غير مناسب لحالته. وفوقها يوفر الوسوم والمفضلات والبحث المتقدم للحفاظ على قابلية اكتشاف المحتوى.
كتابة التوثيق
الطريقة الأساسية هي محرر مرئي WYSIWYG يعتمد على مشروع Tiny المفتوح. ويدعم مستويات العناوين، وكتل الشيفرة، والكتل القابلة للطي، والجداول، والصور، والروابط، وتضمين iFrame ، والتنبيهات البارزة، والقوائم النقطية والمرقمة وقوائم المهام، والرسوم من خلال التكامل مع diagrams.net المفتوح المصدر.
وإذا فضلت Markdown ، فثمة محرر مدمج يعرض معاينة حية ويدعم الخصائص نفسها. وإذا سمحت الصلاحيات، تستطيع الانتقال بين المحررين بحسب الصفحة التي تعدلها.
كيف تُخزن بياناتك؟
تُحفظ الوثائق في قاعدة MySQL أو MariaDB بصيغة HTML بسيطة نسبيًا، مع Markdown الأصلي إن استُخدم. واتُّخذت قرارات تصميم وتطوير كثيرة للحفاظ على بساطة HTML ، واستخدام عناصره القياسية المباشرة حيث أمكن، كي يبقى المحتوى الخام مفتوحًا وقابلًا للنقل.
وتُحفظ الصور المرفوعة والمرفقات والرسوم المنشأة على نظام الملفات المحلي، ويمكن اختياريًا حفظها في مخزن متوافق مع S3 مثل MinIO المفتوح المصدر.
ولإبقاء المحتوى متاحًا، توجد خيارات تصدير مدمجة إلى PDF و HTML والنص البسيط و Markdown. وللاستهلاك الخارجي تتوفر HTTP REST API ونظام webhooks. وللتوسيع يسمح «نظام السمات المنطقي» بتشغيل شيفرة PHP مخصصة عند أحداث كثيرة في النظام.
جاهزية لبيئة العمل
يدعم BookStack خيارات مصادقة متعددة، منها SAML2 و OpenID Connect و LDAP ، لتيسير الدخول الموحد مع منصات مثل KeyCloak. كما يوفر مصادقة متعددة العوامل يمكن إلزامها بحسب الدور. ويمنح سجل التدقيق رؤية شاملة لأنشطة التعديل داخل النسخة.
ويتيح نظام صلاحيات كامل قائم على الأدوار تحكمًا في إنشاء المحتوى وعرضه وتحديثه وحذفه، مع قيم افتراضية لكل دور وإمكان تخصيص الأذونات لكل عنصر في الهرمية.
مجتمع للدعم
بعد نشاط تجاوز سبع سنوات وقت كتابة الأصل، نما مجتمع BookStack وأصبحت له قنوات نقاش ودعم متعددة: موقع التوثيق، وأدلة فيديو على YouTube ، ومجتمع فرعي على Reddit ، وقائمة مشكلات نشطة في GitHub ، ودعم أعمال مدفوع.
يمكن تجريب النظام على موقع العرض، والرجوع إلى صفحة التثبيت لإعداد نسختك الخاصة؛ وروابطهما في إحالات الأصل.
عن الكاتب
دان براون مطور ويب شامل مقيم في بريطانيا ومحب للبرمجيات المفتوحة. يقضي معظم وقته في مشروعه BookStack ، ويستمتع بألعاب الفيديو والمشي في ريف هامبشاير.
المراجع:
https://console.redhat.com?intcmp=7016000000127cYAAQ
https://github.com/tinymce/
https://www.diagrams.net/
https://github.com/minio/
https://www.keycloak.org/
https://www.bookstackapp.com/docs/
https://www.youtube.com/c/BookStackApp
https://www.reddit.com/r/bookstack
https://github.com/BookStackApp/BookStack/issues
https://www.bookstackapp.com/support
https://demo.bookstackapp.com/books/bookstack-demo-site/page/logging-in-to-the-demo-site
https://www.bookstackapp.com/docs/admin/installation/