תיעוד של צוות מת בדרך כלל באחת משתי דרכים: מפוזר בשרשורי צ'אט שאף אחד לא מצליח לחפש בהם, או קבור בוויקי כל כך מסורבל שאף אחד לא מעדכן אותו. 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 במדריך לפריסת stack.
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 באירוח עצמי יושב יפה לידו, על אותו סוג תוכנית.
תגובות
אין עדיין תגובות. היו הראשונים.