bolt Valebyte VPS від $4/міс — NVMe, запуск за 60 секунд.

Отримати VPS arrow_forward
eco Початковий Туторіал

Встановлення BookStack на VPS

calendar_month May 31, 2026 schedule 17 хв. читання visibility 725 переглядів
Установка BookStack на VPS: личная вики и база знаний для команды
info

Потрібен сервер для цього гайду? Ми пропонуємо виділені сервери та VPS у 50+ країнах з миттєвим налаштуванням.

Потрібен сервер для цього гайду?

Розгорніть VPS або виділений сервер за хвилини.

Встановлення BookStack на VPS: особиста вікі та база знань для команди

TL;DR

У цьому детальному посібнику ми крок за кроком налаштуємо BookStack — потужну та інтуїтивно зрозумілу систему управління знаннями з відкритим вихідним кодом — на вашому власному віртуальному сервері (VPS) під керуванням Ubuntu 24.04 LTS. Ви отримаєте повністю функціональну платформу для створення та зберігання документації, доступну вашій команді або для особистого використання, з автоматичним HTTPS, механізмом резервного копіювання та базовим захистом.

  • Налаштовуємо BookStack версії 24.04+ на Ubuntu 24.04 LTS.
  • Використовуємо стек PHP 8.3/8.4, MySQL 8.0 та веб-сервер Caddy для автоматичного TLS.
  • Забезпечуємо базову безпеку сервера за допомогою UFW та Fail2ban.
  • Налаштовуємо автоматичне резервне копіювання даних та бази даних.
  • Детальні команди та конфігураційні файли готові до копіювання та виконання.

Що ми налаштовуємо і навіщо

Схема: Що ми налаштовуємо і навіщо
Схема: Що ми налаштовуємо і навіщо

Ми будемо встановлювати BookStack — це безкоштовна та відкрита платформа для створення та організації документації, яка ідеально підходить для особистих нотаток, командних вікі, баз знань, посібників з продуктів та багато іншого. Вона розроблена з акцентом на простоту використання та чистий, сучасний інтерфейс. BookStack дозволяє структурувати інформацію у вигляді "книг", "розділів" та "сторінок", підтримує Markdown та WYSIWYG редактори, а також має потужну систему пошуку та контролю доступу.

У підсумку ви отримаєте повністю незалежну, приватну та контрольовану вами базу знань, доступну за вашим доменним ім'ям. Це особливо цінно для стартапів, команд розробників, соло-фаундерів SaaS-проектів або будь-кого, хто цінує конфіденційність та повний контроль над своїми даними.

Існують різні альтернативи, такі як хмарні рішення (Confluence, Notion, GitLab Wiki, Google Docs) або інші self-hosted платформи (Wiki.js, MediaWiki). Хмарні сервіси зручні, але часто мають щомісячну плату, обмеження щодо сховища і, найголовніше, ви не володієте даними повністю, а довіряєте їх сторонньому провайдеру. Self-hosted рішення на VPS, навпаки, дають вам повний суверенітет над вашою інформацією, дозволяють точно налаштовувати сервер під ваші потреби і, за правильного підходу, можуть бути значно економнішими в довгостроковій перспективі, особливо якщо ви вже орендуєте VPS для інших завдань. Ви також можете бути впевнені у відсутності прихованих "фіч" та стеження, що критично для проектів, які вимагають високого ступеня конфіденційності.

Який VPS-конфіг потрібен для цього завдання

Схема: Який VPS-конфіг потрібен для цього завдання
Схема: Який VPS-конфіг потрібен для цього завдання

BookStack сам по собі не дуже вимогливий до ресурсів, але для стабільної роботи всієї зв'язки (операційна система, база даних, PHP-FPM, веб-сервер) потрібні певні мінімальні характеристики. Ці вимоги актуальні для 2026 року, враховуючи сучасні версії ПЗ.

Мінімальні вимоги для невеликого проекту (до 5-10 активних користувачів, до 1000 сторінок):

  • CPU: 1-2 vCPU. Для базової роботи одного ядра достатньо, але 2 ядра забезпечать кращу чуйність при одночасній роботі кількох користувачів або фонових завданнях.
  • RAM: 2 GB. Цього буде достатньо для Ubuntu Server 24.04 LTS, PHP 8.3/8.4, MySQL 8.0 та Caddy. Якщо ви плануєте запускати інші сервіси на тому ж VPS, розгляньте 4 GB.
  • Диск: 40 GB SSD. Система займе близько 10-15 GB. Решта піде під базу даних BookStack, файли зображень, вкладення та логи. SSD критично важливий для продуктивності бази даних та загальної чуйності системи.
  • Мережа: 100 Mbps порт, 500 GB - 1 TB трафіку на місяць. Для звичайної вікі цього більш ніж достатньо.

Рекомендований VPS-план для команди (до 20-30 активних користувачів, тисячі сторінок, регулярні завантаження файлів):

  • CPU: 2 vCPU.
  • RAM: 4 GB.
  • Диск: 80 GB SSD.
  • Мережа: 1 Gbps порт, 2-3 TB трафіку на місяць.

Для таких характеристик можна розглянути VPS із зазначеними характеристиками.

Коли потрібен dedicated, а не VPS

Виділений сервер (dedicated) стає виправданим, якщо:

  • Дуже високе навантаження: Сотні одночасно активних користувачів, тисячі запитів на секунду.
  • Великий обсяг даних: Десятки тисяч сторінок, терабайти вкладень та файлів.
  • Вимоги до продуктивності: Потрібна максимальна та передбачувана продуктивність без "сусідства" з іншими клієнтами провайдера.
  • Специфічне обладнання: Необхідність в особливих RAID-масивах, GPU або інших апаратних рішеннях, недоступних на VPS.
  • Запуск багатьох інших сервісів: Якщо крім BookStack на сервері працюватимуть інші ресурсомісткі програми (CI/CD, важкі бази даних, ігрові сервери).

У більшості випадків для BookStack достатньо добре сконфігурованого VPS. Якщо ви обираєте dedicated, переконайтеся, що його характеристики відповідають вашим потребам, наприклад, відповідний dedicated.

Локація: на що впливає

Вибір локації VPS впливає на кілька ключових факторів:

  • Затримка (Latency): Чим ближче сервер до вашої основної аудиторії або команди, тим швидшою буде відповідь сайту. Для команди в Європі обирайте європейські дата-центри.
  • Законодавство: Закони про зберігання даних можуть сильно відрізнятися між країнами. Переконайтеся, що обрана локація відповідає вашим вимогам до конфіденційності та юридичним нормам.
  • Доступність сервісів: Деякі хмарні сховища або CDN можуть мати кращу інтеграцію або продуктивність у певних регіонах.
  • Вартість: Ціни на VPS можуть відрізнятися залежно від локації.

Підготовка сервера

Схема: Підготовка сервера
Схема: Підготовка сервера

Перед встановленням BookStack необхідно виконати базове налаштування свіжого сервера. Ми будемо використовувати Ubuntu Server 24.04 LTS.

1. Підключення до сервера

Підключіться до вашого VPS за допомогою SSH. Якщо ваш провайдер надає доступ під root, рекомендується одразу створити нового користувача з правами sudo.


ssh root@ВАШ_IP_АДРЕС_VPS

2. Створення нового користувача та налаштування sudo (за необхідності)

Якщо ви увійшли як root, створіть нового користувача, наприклад, bookstackuser:


adduser bookstackuser
usermod -aG sudo bookstackuser

Потім вийдіть та увійдіть під новим користувачем:


exit
ssh bookstackuser@ВАШ_IP_АДРЕС_VPS

3. Оновлення системи

Завжди починайте з оновлення списку пакетів та встановлених пакетів до останніх версій. Це гарантує, що у вас будуть останні виправлення безпеки та актуальні версії системних бібліотек.


sudo apt update && sudo apt upgrade -y

4. Налаштування брандмауера (UFW)

Увімкніть брандмауер UFW та дозвольте лише необхідні порти. Це критично важливо для безпеки.


sudo apt install ufw -y # Встановлення UFW, якщо ще не встановлений
sudo ufw allow OpenSSH # Дозволити SSH (порт 22)
sudo ufw allow http # Дозволити HTTP (порт 80)
sudo ufw allow https # Дозволити HTTPS (порт 443)
sudo ufw enable # Увімкнути UFW
sudo ufw status # Перевірити статус брандмауера

При запиті підтвердження на увімкнення UFW введіть y.

5. Встановлення Fail2ban

Fail2ban допомагає захистити сервер від атак методом підбору пароля, блокуючи IP-адреси, які роблять занадто багато невдалих спроб входу.


sudo apt install fail2ban -y
sudo systemctl enable fail2ban # Увімкнути автозапуск Fail2ban
sudo systemctl start fail2ban # Запустити Fail2ban

Для базового налаштування можна створити файл /etc/fail2ban/jail.local:


sudo nano /etc/fail2ban/jail.local

Вставте наступний вміст:


[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h

Збережіть файл (Ctrl+O, Enter) та вийдіть (Ctrl+X). Потім перезапустіть Fail2ban:


sudo systemctl restart fail2ban

6. Встановлення базових утиліт

Встановимо необхідні утиліти, які знадобляться в процесі встановлення BookStack.


sudo apt install git curl wget unzip -y

Встановлення ПЗ — покроково

Схема: Встановлення ПЗ — покроково
Схема: Встановлення ПЗ — покроково

Тепер, коли сервер підготовлено, приступимо до встановлення всіх необхідних компонентів для BookStack: PHP, Composer, MySQL та Caddy.

1. Встановлення PHP та необхідних розширень

BookStack версії 24.04+ вимагає PHP 8.1 або вище. Ми встановимо PHP 8.3/8.4, який буде актуальним у 2026 році та забезпечить гарну продуктивність. Для цього спочатку додамо репозиторій ondrej/php, який містить свіжі версії PHP.


sudo apt install software-properties-common -y # Встановлення утиліти для роботи з PPA
sudo add-apt-repository ppa:ondrej/php -y # Додавання репозиторію PHP
sudo apt update # Оновлення списку пакетів після додавання репозиторію
sudo apt install php8.3-fpm php8.3-mysql php8.3-gd php8.3-mbstring php8.3-xml php8.3-bcmath php8.3-zip php8.3-curl php8.3-common php8.3-cli -y # Встановлення PHP 8.3 FPM та необхідних розширень
sudo systemctl enable php8.3-fpm # Увімкнення автозапуску PHP-FPM
sudo systemctl start php8.3-fpm # Запуск PHP-FPM

Примітка: Якщо до 2026 року актуальною стане PHP 8.4, просто замініть php8.3 на php8.4 у всіх командах.

2. Встановлення Composer

Composer — це менеджер залежностей для PHP, необхідний для встановлення компонентів BookStack.


php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" # Завантаження скрипта встановлення Composer
php composer-setup.php --install-dir=/usr/local/bin --filename=composer # Встановлення Composer глобально
php -r "unlink('composer-setup.php');" # Видалення інсталяційного скрипта
composer --version # Перевірка версії Composer

3. Встановлення MySQL Server

BookStack використовує базу даних для зберігання всієї інформації. Ми встановимо MySQL 8.0.


sudo apt install mysql-server -y # Встановлення MySQL Server 8.0
sudo systemctl enable mysql # Увімкнення автозапуску MySQL
sudo systemctl start mysql # Запуск MySQL
sudo mysql_secure_installation # Запуск скрипта для безпечного налаштування MySQL

Під час mysql_secure_installation дотримуйтесь інструкцій:

  • Встановіть плагін VALIDATE PASSWORD COMPONENT (рекомендується).
  • Встановіть надійний пароль для користувача root MySQL.
  • Відповідайте Y на всі інші питання (видалити анонімних користувачів, заборонити віддалений вхід root, видалити тестову базу даних, перезавантажити таблиці привілеїв).

Створимо базу даних та користувача для BookStack. Замініть bookstack_db, bookstack_user та ВАШ_НАДІЙНИЙ_ПАРОЛЬ_ДЛЯ_БД на свої значення.


sudo mysql -u root -p # Вхід до MySQL від імені root (потрібен введений раніше пароль)

Всередині консолі MySQL виконайте:


CREATE DATABASE bookstack_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'bookstack_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'ВАШ_НАДІЙНИЙ_ПАРОЛЬ_ДЛЯ_БД';
GRANT ALL PRIVILEGES ON bookstack_db. TO 'bookstack_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

4. Встановлення BookStack

Клонуємо репозиторій BookStack у директорію /var/www/bookstack.


sudo mkdir -p /var/www/bookstack # Створення директорії для BookStack
sudo chown bookstackuser:bookstackuser /var/www/bookstack # Зміна власника директорії
cd /var/www/bookstack # Перехід у директорію
git clone https://github.com/BookStackApp/BookStack.git . # Клонування репозиторію в поточну директорію

Встановимо залежності BookStack за допомогою Composer.


composer install --no-dev # Встановлення залежностей без dev-пакетів

Налаштуємо права доступу для директорій BookStack.


sudo chown -R www-data:www-data /var/www/bookstack # Зміна власника файлів на користувача веб-сервера
sudo chmod -R 755 /var/www/bookstack # Встановлення прав на читання/запис для файлів
sudo chmod -R 775 /var/www/bookstack/storage /var/www/bookstack/bootstrap/cache # Встановлення прав на запис для критичних директорій

5. Встановлення Caddy Web Server

Caddy — це потужний веб-сервер, який автоматично керує сертифікатами HTTPS (Let's Encrypt), що значно спрощує налаштування. Це чудова альтернатива Nginx та Apache.


sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https # Встановлення необхідних пакетів
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg # Додавання GPG ключа
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list # Додавання репозиторію Caddy
sudo apt update # Оновлення списку пакетів
sudo apt install caddy -y # Встановлення Caddy
sudo systemctl enable caddy # Увімкнення автозапуску Caddy
sudo systemctl start caddy # Запуск Caddy

Тепер Caddy встановлено та готовий до роботи. На наступному етапі ми його сконфігуруємо.

Конфігурація

Схема: Конфігурація
Схема: Конфігурація

Після встановлення всіх компонентів необхідно налаштувати BookStack та веб-сервер Caddy для їхньої спільної роботи.

1. Налаштування файлу .env BookStack

BookStack використовує файл .env для зберігання конфігурації, включно з даними для підключення до бази даних та ключами програми. Перейдіть у директорію BookStack та скопіюйте файл прикладу:


cd /var/www/bookstack
cp .env.example .env

Тепер відкрийте файл .env для редагування:


sudo nano .env

Знайдіть та відредагуйте наступні рядки, замінивши значення на свої:

  • APP_URL: Вкажіть повний URL вашого BookStack (наприклад, https://your-bookstack-domain.com).
  • DB_DATABASE: Ім'я вашої бази даних MySQL (наприклад, bookstack_db).
  • DB_USERNAME: Ім'я користувача MySQL для BookStack (наприклад, bookstack_user).
  • DB_PASSWORD: Пароль користувача MySQL для BookStack.

Приклад відредагованих рядків:


APP_URL=https://your-bookstack-domain.com

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=bookstack_db
DB_USERNAME=bookstack_user
DB_PASSWORD=ВАШ_НАДІЙНИЙ_ПАРОЛЬ_ДЛЯ_БД

Збережіть файл (Ctrl+O, Enter) та вийдіть (Ctrl+X).

2. Генерація ключа програми

BookStack вимагає унікального ключа програми для шифрування та безпеки. Виконайте наступну команду в директорії BookStack:


php artisan key:generate

Ця команда автоматично згенерує ключ та додасть його до вашого файлу .env.

3. Виконання міграцій бази даних

Тепер необхідно створити таблиці в базі даних BookStack.


php artisan migrate --force # Виконання міграцій бази даних

При запиті підтвердження введіть yes.

4. Налаштування Caddyfile

Caddy автоматично керує HTTPS, що робить його ідеальним для BookStack. Відредагуйте файл конфігурації Caddy за замовчуванням:


sudo nano /etc/caddy/Caddyfile

Видаліть весь вміст файлу та вставте наступну конфігурацію. Замініть your-bookstack-domain.com на ваш фактичний домен:


your-bookstack-domain.com {
    # Вказуємо кореневу директорію BookStack
    root  /var/www/bookstack/public

    # Вмикаємо сервер статичних файлів
    file_server

    # Проксіюємо PHP запити до PHP-FPM
    php_fastcgi unix//run/php/php8.3-fpm.sock

    # Налаштовуємо логування доступу
    log {
        output file /var/log/caddy/access.log
        format json
    }

    # Обробка помилок
    handle_errors {
        rewrite  /index.php
    }

    # Швидке перенаправлення HTTP на HTTPS
    # Caddy робить це автоматично, але цей рядок може допомогти в деяких випадках
    # Або можна використовувати {
    #   redir https://{host}{uri}
    # }
}

Примітка: Переконайтеся, що php8.3-fpm.sock відповідає версії PHP, яку ви встановили. Якщо ви встановлювали PHP 8.4, замініть на php8.4-fpm.sock.

Створіть директорію для логів Caddy:


sudo mkdir -p /var/log/caddy
sudo chown caddy:caddy /var/log/caddy # Встановлення власника для директорії логів

Збережіть файл (Ctrl+O, Enter) та вийдіть (Ctrl+X).

5. Перевірка та перезапуск Caddy

Перевірте конфігурацію Caddy на помилки:


sudo caddy validate --config /etc/caddy/Caddyfile

Якщо помилок немає, перезапустіть Caddy, щоб застосувати нову конфігурацію:


sudo systemctl reload caddy

Переконайтеся, що Caddy працює коректно:


sudo systemctl status caddy

Статус має бути active (running).

6. Перевірка працездатності

Тепер BookStack має бути доступний за вашим доменним ім'ям з HTTPS. Відкрийте веб-браузер та перейдіть за адресою https://your-bookstack-domain.com.

Ви повинні побачити сторінку входу BookStack. Початкові облікові дані для входу:

Обов'язково змініть ці дані відразу після першого входу!

Ви також можете перевірити доступність із сервера:


curl -I https://your-bookstack-domain.com

У відповіді мають бути заголовки HTTP/2 200 OK.

Резервне копіювання та обслуговування

Схема: Резервне копіювання та обслуговування
Схема: Резервне копіювання та обслуговування

Регулярне резервне копіювання — це наріжний камінь будь-якої production-системи. BookStack зберігає дані в базі даних та файли (зображення, вкладення) на диску. Обслуговування включає оновлення ПЗ та моніторинг.

1. Що резервувати

  • База даних BookStack: Містить усі сторінки, книги, розділи, користувачів, налаштування. Це найважливіше.
  • Файли BookStack: Включають завантажені зображення, вкладення, а також файл .env (з конфіденційними даними, такими як ключ програми та облікові дані БД).

2. Простий скрипт авторезервування

Створимо простий скрипт для резервного копіювання. Рекомендується зберігати резервні копії не на тому ж сервері.


sudo nano /usr/local/bin/bookstack_backup.sh

Вставте наступний вміст, замінивши ВАШ_НАДЕЖНЫЙ_ПАРОЛЬ_ДЛЯ_БД та bookstack_db на свої значення:


#!/bin/bash

# Конфігурація
DB_NAME="bookstack_db"
DB_USER="bookstack_user" # Краще створити окремого користувача MySQL лише для резервного копіювання з правами SELECT, LOCK TABLES
DB_PASS="ВАШ_НАДЕЖНЫЙ_ПАРОЛЬ_ДЛЯ_БД"
BOOKSTACK_PATH="/var/www/bookstack"
BACKUP_DIR="/var/backups/bookstack"
DATE=$(date +%Y%m%d%H%M%S)
FILENAME_DB="${DB_NAME}_${DATE}.sql"
FILENAME_FILES="bookstack_files_${DATE}.tar.gz"

# Створення директорії для резервних копій, якщо не існує
mkdir -p "${BACKUP_DIR}"

echo "Починаємо резервне копіювання BookStack..."

# 1. Резервне копіювання бази даних
echo "Резервне копіювання бази даних..."
mysqldump --user="${DB_USER}" --password="${DB_PASS}" "${DB_NAME}" > "${BACKUP_DIR}/${FILENAME_DB}"
if [ $? -eq 0 ]; then
    echo "Резервне копіювання бази даних успішно створено: ${FILENAME_DB}"
else
    echo "Помилка при створенні резервної копії бази даних."
    exit 1
fi

# 2. Резервне копіювання файлів BookStack (за винятком кешу та логів)
echo "Резервне копіювання файлів BookStack..."
tar -czf "${BACKUP_DIR}/${FILENAME_FILES}" -C "${BOOKSTACK_PATH}" \
    --exclude='storage/uploads/images/' \
    --exclude='storage/uploads/files/' \
    --exclude='storage/logs/' \
    --exclude='bootstrap/cache/' \
    --exclude='vendor/' \
    .
# Додатково зберігаємо лише .env та uploads окремо, щоб їх легко було відновити
cp "${BOOKSTACK_PATH}/.env" "${BACKUP_DIR}/bookstack_env_${DATE}.env"
tar -czf "${BACKUP_DIR}/bookstack_uploads_images_${DATE}.tar.gz" -C "${BOOKSTACK_PATH}/storage/uploads" images
tar -czf "${BACKUP_DIR}/bookstack_uploads_files_${DATE}.tar.gz" -C "${BOOKSTACK_PATH}/storage/uploads" files

if [ $? -eq 0 ]; then
    echo "Резервне копіювання файлів BookStack успішно створено: ${FILENAME_FILES}"
else
    echo "Помилка при створенні резервної копії файлів BookStack."
    exit 1
fi

# 3. Видалення старих резервних копій (наприклад, старших за 7 днів)
echo "Видалення старих резервних копій..."
find "${BACKUP_DIR}" -type f -name ".sql" -mtime +7 -delete
find "${BACKUP_DIR}" -type f -name ".tar.gz" -mtime +7 -delete
find "${BACKUP_DIR}" -type f -name ".env" -mtime +7 -delete

echo "Резервне копіювання завершено."

Збережіть файл і зробіть його виконуваним:


sudo chmod +x /usr/local/bin/bookstack_backup.sh

3. Автоматизація резервного копіювання за допомогою Cron

Додамо скрипт до планувальника Cron для щоденного виконання.


sudo crontab -e

Виберіть текстовий редактор (якщо запропонує) і додайте наступний рядок в кінець файлу, щоб виконувати резервне копіювання щодня о 3:00 ночі:


0 3    /usr/local/bin/bookstack_backup.sh >> /var/log/bookstack_backup.log 2>&1

Збережіть і вийдіть. Тепер резервні копії створюватимуться автоматично.

4. Куди зберігати резервні копії

Ніколи не зберігайте всі резервні копії лише на тому ж сервері, що й основний сервіс! Якщо сервер вийде з ладу, ви втратите все.

  • Зовнішнє S3-сумісне сховище: Amazon S3, DigitalOcean Spaces, Backblaze B2. Це надійний і відносно недорогий варіант. Можна використовувати утиліти на кшталт s3cmd або rclone для автоматичної синхронізації.
  • Окремий VPS: Орендуйте невеликий, дешевий VPS виключно для зберігання резервних копій та синхронізуйте їх туди по SFTP/RSYNC.
  • Локальний мережевий диск (NAS): Якщо у вас є власна інфраструктура.

Наприклад, для відправки резервних копій на S3, ви можете додати до скрипта bookstack_backup.sh після створення архівів команду s3cmd put "${BACKUP_DIR}/${FILENAME_DB}" s3://your-s3-bucket/bookstack/ (потрібна установка та налаштування s3cmd).

5. Оновлення: rolling vs maintenance window

Регулярні оновлення критично важливі для безпеки та отримання нових функцій.

  • Системні оновлення (ОС, PHP, MySQL):
    • Rolling (постійні): Для некритичних патчів безпеки можна налаштувати автоматичне оновлення (наприклад, за допомогою unattended-upgrades).
    • Maintenance Window (вікно обслуговування): Для мажорних оновлень PHP, MySQL або ядра Linux рекомендується планувати вікно обслуговування, оскільки вони можуть вимагати перезавантаження сервера або призвести до тимчасової непрацездатності сервісу. Тестуйте оновлення на стейджинг-сервері, якщо це можливо.
    
    sudo apt update && sudo apt upgrade -y # Оновлення системи
    
  • Оновлення BookStack:

    BookStack оновлюється через Git та Composer. Рекомендується виконувати їх у вікно обслуговування.

    
    cd /var/www/bookstack
    git pull # Завантаження останніх змін з репозиторію
    composer install --no-dev # Оновлення залежностей
    php artisan migrate --force # Виконання міграцій бази даних (якщо є)
    php artisan cache:clear # Очищення кешу BookStack
    php artisan view:clear # Очищення кешу представлень
    sudo chown -R www-data:www-data /var/www/bookstack # Переконайтеся, що права вірні після pull
    sudo chmod -R 775 /var/www/bookstack/storage /var/www/bookstack/bootstrap/cache
    sudo systemctl reload php8.3-fpm # Перезапуск PHP-FPM
    sudo systemctl reload caddy # Перезапуск Caddy
    

    Завжди перевіряйте офіційну документацію BookStack перед оновленням, оскільки процес може змінюватися.

Вирішення проблем + FAQ

Мій BookStack не працює, я бачу помилку 500 або порожню сторінку. Що робити?

Помилка 500 (Internal Server Error) зазвичай вказує на проблему в роботі PHP або програми. В першу чергу перевірте логи:

  • Логи Caddy: sudo tail -f /var/log/caddy/access.log та sudo journalctl -u caddy -f. Шукайте помилки, пов'язані з проксіюванням PHP.
  • Логи PHP-FPM: sudo tail -f /var/log/php8.3-fpm.log (або відповідна версія PHP).
  • Логи BookStack: sudo tail -f /var/www/bookstack/storage/logs/laravel.log. Це найважливіший лог для налагодження проблем самого BookStack.

Часті причини: неправильні права доступу до файлів/директорій (особливо storage та bootstrap/cache), помилки у файлі .env (невірні облікові дані БД, неправильний APP_URL), відсутні PHP-розширення, проблеми з підключенням до бази даних.

Який VPS-конфіг мінімально підійде для BookStack?

Для невеликого особистого використання або команди з 2-3 осіб з не дуже великим обсягом даних, мінімально підійде VPS з 1-2 vCPU, 2 ГБ оперативної пам'яті та 40 ГБ SSD-диска. Цього достатньо для стабільної роботи Ubuntu 24.04 LTS, PHP 8.3/8.4, MySQL 8.0 та Caddy з BookStack. Важливо, щоб диск був SSD для хорошої продуктивності бази даних.

Що вибрати — VPS чи dedicated для цього завдання?

Для більшості сценаріїв використання BookStack (особиста вікі, база знань для невеликої або середньої команди до 30-50 осіб) VPS є оптимальним вибором. Він пропонує достатню продуктивність, гнучкість і значно нижчий за вартістю. Виділений сервер варто розглядати, якщо у вас дуже велика команда (сотні користувачів), величезний обсяг даних, критичні вимоги до продуктивності без будь-яких компромісів, або якщо ви плануєте розміщувати безліч інших ресурсоємних програм на тому ж сервері.

Я змінив доменне ім'я. Що потрібно оновити?

Якщо ви змінили доменне ім'я, необхідно оновити як мінімум два місця:

  1. Файл .env BookStack: Змініть значення APP_URL на нове доменне ім'я (наприклад, APP_URL=https://new-domain.com).
  2. Caddyfile: Відредагуйте /etc/caddy/Caddyfile і замініть старе доменне ім'я на нове в першому рядку (наприклад, new-domain.com { ... }).
Після змін не забудьте перезапустити Caddy: sudo systemctl reload caddy та очистити кеш BookStack: php artisan cache:clear && php artisan view:clear.

Як оновити BookStack до нової версії?

Процес оновлення BookStack зазвичай включає: перехід до директорії BookStack (cd /var/www/bookstack), отримання останніх змін з Git (git pull), оновлення PHP-залежностей через Composer (composer install --no-dev), виконання міграцій бази даних (php artisan migrate --force) та очищення кешу BookStack (php artisan cache:clear && php artisan view:clear). Завжди рекомендується прочитати офіційні інструкції з оновлення для конкретної версії BookStack, оскільки можуть бути специфічні кроки.

BookStack видає помилку "Access Denied" при спробі підключення до MySQL.

Ця помилка означає, що BookStack не може підключитися до бази даних MySQL з наданими обліковими даними. Перевірте наступне:

  • Файл .env: Переконайтеся, що DB_USERNAME, DB_PASSWORD та DB_DATABASE у файлі /var/www/bookstack/.env точно відповідають тим, що ви створили в MySQL.
  • Користувач MySQL: Переконайтеся, що користувач bookstack_user існує в MySQL і має правильні привілеї на базу даних bookstack_db. Ви можете перевірити це, увійшовши в MySQL від імені root і виконавши SELECT user, host FROM mysql.user; та SHOW GRANTS FOR 'bookstack_user'@'localhost';.
  • Служба MySQL: Перевірте, що служба MySQL запущена: sudo systemctl status mysql.

Висновки та наступні кроки

Схема: Висновки та наступні кроки
Схема: Висновки та наступні кроки

Вітаємо! Ви успішно встановили та налаштували BookStack на вашому VPS, створивши надійну та контрольовану вами платформу для управління знаннями. Тепер у вас є потужний інструмент для організації інформації, будь то особисті нотатки, документація по проєкту або обширна база знань для вашої команди. Ви отримали повний контроль над даними та інфраструктурою, забезпечивши конфіденційність та безпеку.

Куди рухатися далі?

  • Налаштування користувачів та ролей: У BookStack ви можете створювати користувачів, групи та призначати їм різні права доступу до книг, розділів та сторінок. Почніть зі створення облікових записів для вашої команди та налаштування відповідних дозволів.
  • Кастомізація зовнішнього вигляду: BookStack дозволяє змінювати логотип, колірну схему та додавати користувацький CSS, щоб брендувати вашу вікі відповідно до вашого стилю.
  • Інтеграція із зовнішніми сервісами: Розгляньте можливість налаштування єдиного входу (SSO) через LDAP, SAML2 або соціальні провайдери, якщо це актуально для вашої команди.
  • Моніторинг сервера: Встановіть системи моніторингу (наприклад, Prometheus + Grafana або Zabbix) для відстеження завантаження CPU, RAM, диска та стану сервісів, щоб оперативно реагувати на потенційні проблеми.

Поділитися цим записом:

встановлення BookStack на VPS: особиста вікі та база знань для команди
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.