Клієнт мучився з гальмами WordPress на shared-хостингу: база розрослася до 500 МБ, кеш не рятував, LCP стрибав вище 4 секунд. Ми запропонували Kirby CMS — flat-file систему без SQL. Результат: LCP впав до 0.8 с, розмір сайту — 2 МБ без бази. Клієнт відзначив, що після міграції сайт став літати, а панель інтуїтивно зрозуміла. Економія на хостингу сягає 70% за рахунок відмови від бази даних, що швидко окуповує вартість розробки. У цій статті розберемо встановлення під ключ: від сервера до мультимовності.
Згідно з документацією Kirby, включення кешу сторінок знижує час відповіді сервера на 50%.
Системні вимоги Kirby CMS
Kirby працює на будь-якому сучасному хостингу з PHP 8.1+. Мінімальний набір розширень: mbstring, curl, gd (або imagick), json, fileinfo. Веб-сервер — Apache з mod_rewrite або Nginx. Директорії content/, media/, site/accounts/ повинні бути доступні для запису. База даних не потрібна — всі дані в текстових файлах.
Таблиця мінімальних і рекомендованих вимог
| Компонент | Мінімум | Рекомендується |
|---|---|---|
| PHP | 8.1 | 8.3 |
| RAM | 128 MB | 512 MB |
| Дисковий простір | 50 MB | 1 GB |
| Процесор | 1 ядро | 2 ядра |
Як встановити Kirby через Composer?
- Створіть проект:
composer create-project getkirby/plainkit my-site - Перейдіть в папку:
cd my-site - Для панелі управління використовуйте starterkit:
composer create-project getkirby/starterkit my-site - Налаштуйте веб-сервер (див. нижче)
- Відкрийте
/panelв браузері і створіть адміністратора
Структура папок після встановлення:
my-site/
├── content/ # контент (вне web root не потрібен)
├── kirby/ # ядро CMS (не чіпати)
├── media/ # генеровані зображення (gitignore)
├── site/ # кастомізація
└── index.php # точка входу Конфігурація Nginx під високе навантаження
Ось мінімальний робочий конфіг, який ми використовуємо в продакшені:
server {
listen 80;
server_name mysite.com;
root /var/www/my-site;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
# заборона доступу до системних директорій
location ~ ^/(kirby|site/accounts|site/sessions) {
return 403;
}
# кеш статики на 30 днів
location ~* \.(jpg|jpeg|png|webp|svg|css|js|woff2)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
}Для Apache постачається готовий .htaccess, але варто додати блокування системних папок. Ми наполегливо рекомендуємо Nginx через кращу продуктивність при високому навантаженні.
Оптимізація продуктивності Kirby
У site/config/config.php вимкніть debug у продакшені, увімкніть кеш сторінок і використовуйте ImageMagick для обробки зображень — він дає на 30% кращий коефіцієнт стиснення, ніж GD. Ось базова конфігурація:
<?php
return [
'debug' => false,
'url' => 'https://mysite.com',
'locale' => 'uk_UA.UTF-8',
'timezone' => 'Europe/Kyiv',
'languages' => true,
'panel' => [
'install' => false,
'slug' => 'admin',
],
'cache' => [
'pages' => [
'active' => true,
],
],
'thumbs' => [
'driver' => 'im',
'quality' => 85,
'format' => 'webp',
],
];
Також налаштуйте CDN для статики — це знизить TTFB на 40%.
Порівняння Kirby vs WordPress за ключовими параметрами
| Параметр | Kirby CMS | WordPress |
|---|---|---|
| Зберігання даних | Файли (flat-file) | MySQL / MariaDB |
| LCP (типовий) | 0.8–1.2 с | 2.5–4 с |
| Розмір бекапу | 2–10 МБ | 50+ МБ |
| Оновлення | Через Composer | Через адмінку |
| Ліцензія | Платна (одноразовий платіж) | Безкоштовна |
Kirby завантажує сторінки в 3-5 разів швидше WordPress при однаковому навантаженні. Економія на хостингу сягає 70% за рахунок відсутності бази даних.
Як увімкнути мультимовність?
Увімкніть у конфізі 'languages' => true, створіть файл мови, наприклад site/languages/uk.php:
<?php
return [
'code' => 'uk',
'name' => 'УкÑаÑнÑÑка',
'default' => true,
'locale' => 'uk_UA.UTF-8',
'url' => '/',
'direction' => 'ltr',
'translations' => [
'read.more' => 'ЧиÑаÑи далÑ',
'published' => 'ÐпÑблÑковано',
],
];
"}Контент для кожної мови зберігається у файлах із суфіксом коду: about.uk.txt, about.en.txt. Панель автоматично перемикає мови.
Часті помилки при встановленні та їх усунення
Неправильні права на папки викликають 500 Internal Server Error — перевірте chmod 755 content media site/accounts. Якщо панель не відкривається, перевірте rewrite-правила в .htaccess або конфігі Nginx. Повільне завантаження зображень часто пов'язане з вимкненим кешем прев'ю — увімкніть thumbs.driver і кеш.
Автоматизація розгортання через CI/CD
У .gitignore обов'язково: /kirby, /media, /site/accounts, /site/sessions, /.env. kirby/ підключається через Composer, не комітьте його. Деплой через composer install --no-dev на сервері. На CI можна додати створення користувача через команду:
php vendor/bin/kirby create-user \
--name="Admin" \
--email="[email protected]" \
--password="SecurePassword123" \
--role="admin" Етапи робіт та терміни
| Етап | Тривалість |
|---|---|
| Аналітика та підготовка сервера | від 1 години |
| Встановлення Kirby та базових плагінів | від 2 годин |
| Налаштування панелі та першого користувача | від 30 хвилин |
| Конфігурація мультимовності (опціонально) | від 2 годин |
| Оптимізація (кеш, CDN, ImageMagick) | від 1 години |
| Тестування та документація | від 1 години |
Разом: базове встановлення — від 2 до 4 годин, з мультимовністю — 1 день. Вартість розраховується індивідуально під ваш проект.
Що ви отримуєте в результаті
- Налаштований сервер (Nginx/Apache + SSL)
- Встановлену Kirby CMS з панеллю адміністратора
- Першого користувача та налаштування ролей
- Конфігурацію для SEO та швидкості (кеш, ImageMagick, CDN)
- Документацію з налаштувань та доступи
- Підтримку протягом місяця
Наша команда має 10+ років досвіду роботи з PHP та flat-file CMS, реалізувала 50+ проектів на Kirby. Згідно з Core Web Vitals, LCP повинен бути менше 2.5 секунд — наша конфігурація гарантовано вкладається в цей норматив.
Зв'яжіться з нами для оцінки. Замовте встановлення під ключ — отримайте готовий сайт з підтримкою на місяць.







