Встановлення 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-конфіг потрібен для цього завдання
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(рекомендується). - Встановіть надійний пароль для користувача
rootMySQL. - Відповідайте
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 встановлено та готовий до роботи. На наступному етапі ми його сконфігуруємо.