Notefix/1.Projects/Персональний сайт портфоліо/Self Hosted/bookstack.md

6.1 KiB
Raw Blame History

BookStack — це безкоштовна відкрита платформа (Open Source, ліцензія MIT) для створення, зберігання та впорядкування документації і корпоративних баз знань. Проєкт розроблено за принципом self-hosted (розгортання на власних серверах компанії), що дає бізнесу повний контроль над даними та інфраструктурою.

Ключові можливості та структура

  • Зрозуміла ієрархія: Інформація організована за метафорою реальної бібліотеки: Полиці (Shelves) → Книги (Books) → Розділи (Chapters) → Сторінки (Pages). Це спрощує навігацію для співробітників та знижує поріг входження.

  • Редактори контенту: Підтримується як простий візуальний редактор (WYSIWYG), так і Markdown-редактор із живим попереднім переглядом.

  • Вбудована інтеграція з diagrams.net (Draw.io): Дозволяє створювати та редагувати схеми, діаграми процесів та архітектурні креслення прямо всередині сторінок документації без використання сторонніх сервісів.

  • Пошук та зв’язування: Наявний глобальний пошук по всьому вмісту, можливість сортування книг, створення прямих посилань на конкретні абзаци та відстеження історії змін (Page Revisions).

Акцент на корпоративному та бізнес-використанні

  1. Корпоративна автентифікація (Enterprise Authentication) Окрім стандартного входу за логіном/паролем, BookStack "з коробки" підтримує інтеграцію з корпоративними системами управління ідентифікацією:

    • LDAP (для інтеграції з Active Directory / OpenLDAP);

    • SAML 2.0 (для інтеграції з Okta, Azure AD / Entra ID тощо);

    • OpenID Connect (OIDC).

  2. Багатофакторна автентифікація (MFA) та безпека

    • Вбудована підтримка MFA (TOTP-додатки, такі як Google/Microsoft Authenticator, Authy, а також резервні коди).

    • Можливість примусового ввімкнення MFA на рівні конкретних ролей (наприклад, обов’язково для адміністраторів або відділу безпеки).

  3. Гнучка система прав доступу (Roles & Permissions)

    • Деталізоване налаштування прав: можна обмежувати перегляд, створення, редагування чи видалення контенту.

    • Права можна призначати як на глобальному рівні (системні ролі), так і локально — для окремих книг, розділів чи навіть окремих сторінок.

  4. Контроль даних та відсутність прив'язки до вендора (No Vendor Lock-in)

    • Оскільки BookStack розгортається на власних потужностях (побудований на PHP/Laravel та MySQL), корпоративні дані не передаються третім особам та зберігаються повністю всередині периметра компанії.

    • Низькі вимоги до ресурсів дозволяють ефективно масштабувати та підтримувати систему без значних витрат на інфраструктуру.

  5. Багатомовність та кастомізація

    • Інтерфейс підтримує понад 30 мов.

    • Можливість налаштування брендингу (зміна назви, логотипу, кольорової гами, налаштування публічного або повністю закритого приватного доступу до бази).


services:
  bookstack:
    image: lscr.io/linuxserver/bookstack:latest
    container_name: bookstack
    environment:
      - PID=1000
      - PGID=1000
      - TZ=Europe/Kyiv
      - APP_URL=https://bookstack.notefix.net.ua # Вкажи свій домен або локальну IP (наприклад http://192.168.1.50:6875)
      - APP_KEY=base64:sxB8ozESs4JosdzKsdnOMdK4f2aQzAnFVpBOIyynWHo=
      - DB_HOST=bookstack_db
      - DB_USERNAME=bookstack_user
      - DB_PASSWORD=kX2zsT5qgW7dtJ4ceU8uqL1inM6vrS # Зміни на свій пароль
      - DB_DATABASE=bookstack_db
    volumes:
      - /mnt/docker_data/bookstack/config:/config
    ports:
      - "7895:80"
    restart: unless-stopped
    depends_on:
      - bookstack_db

  bookstack_db:
    image: lscr.io/linuxserver/mariadb:latest
    container_name: bookstack_db
    environment:
      - PID=1000
      - PGID=1000
      - TZ=Europe/Kyiv
      - MYSQL_ROOT_PASSWORD=A4quX0pg9ey3hY2nwI7wnC5bkKkvR1 # Зміни на свій root-пароль
      - MYSQL_DATABASE=bookstack_db
      - MYSQL_USER=bookstack_user
      - MYSQL_PASSWORD=kX2zsT5qgW7dtJ4ceU8uqL1inM6vrS # Має збігатися з DB_PASS вище
    volumes:
      - /mnt/docker_data/bookstack/db:/config
    restart: unless-stopped
    
networks:
  default:
    external:
      name: supabase_default