−25%

روی پرداخت سالانه Windows، تا ۳۱ اکتبر. مشاهده پلن‌ها

EQVPS

VPS برای BookStack: ویکی تیمی روی سرور خودتان

BookStack را روی VPS به‌عنوان ویکی مستندات تیم اجرا کنید: Docker با MariaDB، HTTPS روی دامنه‌تان، اولین ورود، پشتیبان‌گیری و نیازهای واقعی.

مستندات تیمی معمولاً به یکی از دو شکل می‌میرد: پراکنده در رشته‌های چت که هیچ‌کس نمی‌تواند در آن‌ها جستجو کند، یا دفن‌شده در ویکی‌ای آن‌قدر بدقلق که کسی به‌روزش نمی‌کند. BookStack همان ویکی خودمیزبان کمیابی است که مردم واقعاً از آن استفاده می‌کنند. محتوا در قفسه‌ها، کتاب‌ها، فصل‌ها و صفحه‌ها چیده می‌شود — ساختاری که همه بدون آموزش می‌فهمند. و تقریباً به هیچ سروری نیاز ندارد.

چرا BookStack

ابزار مناسب همه چیز نیست. مستندات توسعه‌دهنده که باید همراه کد تغییر کند جایش در مخزن است، نه در ویکی.

چه چیزهایی لازم دارد

BookStack سبک است. برای بیشتر تیم‌ها Micro-IP — ۱ vCPU، ۲ گیگابایت، ماهی ۱۰ دلار — بیش از کافی است. 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 خودمیزبان به‌خوبی کنارش می‌نشیند، روی همان نوع پلن.

آماده استقرار؟ با رمزارز بپرداز، بدون KYC — در حدود یک دقیقه فعال می‌شود.

← همین حالا مستقر کن

سؤالات متداول

BookStack چقدر سرور لازم دارد؟

خیلی کم. BookStack یک برنامه‌ی PHP با پایگاه داده‌ی MariaDB است؛ تیمی چندده‌نفره با ۱ vCPU و ۲ گیگابایت رم به‌راحتی کار می‌کند. دیسک بیشتر صرف تصاویر و پیوست‌های آپلودشده می‌شود.

اطلاعات ورود پیش‌فرض چیست؟

admin@admin.com با رمز 'password'. وارد شوید و هر دو را فوراً عوض کنید — پیش از اینکه آدرس را با کسی به اشتراک بگذارید.

می‌تواند از ورود سازمانی ما استفاده کند؟

بله. BookStack از LDAP، SAML2 و OpenID Connect پشتیبانی می‌کند، پس همه از طریق همان ارائه‌دهنده‌ی هویتی که الان دارید وارد می‌شوند.

به IP اختصاصی نیاز دارم؟

برای تیم، بله. همکاران آن را در مرورگر از طریق HTTPS باز می‌کنند و این به ترافیک ورودی روی پورت ۴۴۳ به IP خودتان نیاز دارد. برای یک دفترچه‌ی شخصی، تونل SSH روی پلن NAT هم کافی است.

چطور از آن پشتیبان بگیرم؟

از پایگاه داده دامپ بگیرید و پوشه‌ی آپلودها را که در ولوم پیکربندیِ متصل‌شده است کپی کنید. راهنمای restic ما هر دو را به اسنپ‌شات‌های رمزگذاری‌شده‌ی بیرون از سرور خودکار می‌کند.

نظرات

هنوز نظری نیست. اولین نفر باشید.

یک نظر بگذارید

نظرات پیش از نمایش بررسی می‌شوند.