يموت توثيق الفريق عادةً بإحدى طريقتين: مبعثرًا في سلاسل دردشة لا يستطيع أحد البحث فيها، أو مدفونًا في ويكي ثقيل الاستخدام لدرجة أن أحدًا لا يحدّثه. BookStack هو ذلك الويكي المستضاف ذاتيًا النادر الذي يستخدمه الناس فعلًا. يُرتَّب المحتوى في رفوف وكتب وفصول وصفحات — بنية يفهمها الجميع دون تدريب. ولا يحتاج إلى خادم يُذكر تقريبًا.
لماذا BookStack
- بنية واضحة. كتب وفصول بدل كومة مسطحة من الصفحات.
- تحرير لا يخيف أحدًا. محرر WYSIWYG افتراضيًا، وMarkdown لمن يفضّله.
- صلاحيات حقيقية. أدوار لكل رف أو كتاب أو صفحة — تبقى وثائق الموارد البشرية بعيدة عن المتعاقدين.
- دخول الشركة. LDAP وSAML2 وOpenID Connect مدمجة.
- بياناتك. كل شيء في قاعدة بيانات MariaDB ومجلد على خادمك.
ليس الأداة المناسبة لكل شيء. توثيق المطورين الذي يجب أن يتغير مع الكود مكانه المستودع، لا الويكي.
ما يحتاجه
BookStack خفيف. لمعظم الفرق، خطة Micro-IP — 1 vCPU، 2 GB، $10 شهريًا — أكثر من كافية. الـIP المخصص هو ما يسمح لزملائك بالوصول إليه عبر HTTPS على نطاقك. يكبر القرص مع لقطات الشاشة وملفات PDF المرفوعة، لا مع عدد الصفحات.
التثبيت بـDocker Compose
سنستخدم صور LinuxServer.io الشائعة. أنشئ أولًا مفتاح التطبيق:
docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey
انسخ قيمة base64:... التي يطبعها. ثم أنشئ docker-compose.yml:
services:
bookstack:
image: lscr.io/linuxserver/bookstack:latest
environment:
- PUID=1000
- PGID=1000
- APP_URL=https://wiki.example.com
- APP_KEY=base64:paste-your-key-here
- DB_HOST=db
- DB_PORT=3306
- DB_DATABASE=bookstack
- DB_USERNAME=bookstack
- DB_PASSWORD=change-me
volumes:
- ./bookstack:/config
ports:
- 127.0.0.1:6875:80
depends_on:
- db
restart: unless-stopped
db:
image: lscr.io/linuxserver/mariadb:latest
environment:
- PUID=1000
- PGID=1000
- MYSQL_ROOT_PASSWORD=change-me-too
- MYSQL_DATABASE=bookstack
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=change-me
volumes:
- ./db:/config
restart: unless-stopped
docker compose up -d
docker compose logs -f bookstack
يجب أن يطابق APP_URL العنوان الذي سيستخدمه الناس، بما في ذلك https://. إن أخطأت فيه، تتعطل الصور والروابط بطرق غريبة. المزيد عن Compose في دليل نشر مجموعة الحاويات.
HTTPS وأول دخول
وجّه نطاقًا فرعيًا إلى الخادم (كيف)، وضع nginx أمام 127.0.0.1:6875، وأضف شهادة بـcertbot — دليل الـreverse proxy يرشدك خطوة بخطوة.
ثم ادخل بالحساب الافتراضي: admin@admin.com / password. غيّر البريد وكلمة المرور فورًا، قبل مشاركة الرابط. يحصل الآخرون على حسابات خاصة بهم أو يدخلون عبر مزوّد الهوية لديكم.
النسخ الاحتياطي
أمران يجب حمايتهما: قاعدة البيانات والملفات المرفوعة داخل ./bookstack. مهمة ليلية كهذه تغطي قاعدة البيانات:
docker compose exec -T db mysqldump -u bookstack -pchange-me bookstack > /var/backups/bookstack.sql
ثم انسخ /var/backups ومجلد compose خارج الخادم — وهذا بالضبط ما يفعله دليل restic. وتضيف Managed Backups فوق ذلك نقاط استعادة يومية للخادم كله.
الصيانة
التحديث هو docker compose pull && docker compose up -d. يشغّل BookStack ترحيلات قاعدة البيانات عند الإقلاع. اقرأ ملاحظات الإصدار قبل الإصدارات الرئيسية؛ فهي قصيرة وواضحة.
إن أراد فريقك أيضًا مكانًا للتذاكر والكود، فإن خادم Git مستضافًا ذاتيًا يجلس بجانبه بارتياح، على النوع نفسه من الخطط.
التعليقات
لا تعليقات بعد. كن الأول.