Albireo CMS. Версия 2026.06

21-06-2026Время чтения ~ 9 мин.Albireo CMS 10

Версия вышла с задержкой, поскольку в ней набралось много изменений и мне нужно было дополнительное время на тестирование. В целом это особая версия, которой я хочу зафиксировать новую структуру файлов и каталогов как минимум до следующей «большой» версии.

Общее описание версии

На странице истории изменений зафиксировано более сотни изменений с мартовской версии.

Самое важно — это то, что я немного поменял структуру каталогов. Поэтому, если у вас уже рабочий сайт, то следуйте советам по обновлению.

Новая структура чуточку логичней старой, и, главное, теперь будет проще обновляться. Например раньше в каталоге specific располагались и демо-примеры, и рабочие страницы, админ-страницы и т.п. Теперь демо-примеры вынесены отдельно в examples, а в specific появилась группировка по подкаталогам.

Ускорение за счёт frozen

Это новая возможность: можно с помощью поля frozen: + как бы «заморозить» страницу для кэша. Это актуально для больших сайтов, где сотни и тысячи страниц. Это поле указывает системе, чтобы она её игнорировала для обновления кэша.

Например вы редактируете страницу и при каждом сохранении, система будет перестраивать кэш. Для больших сайтов это может оказаться существенное влияние. Поэтому «заморозив» страницу, можно спокойно её редактировать, это никак не повлияет на кэш.

С учётом другой config-настройки cacheFrozenDirs можно получить очень существенный прирост скорости. На тестовых данных, где 10 тысяч страниц (по 40+Кб) время построения кэша увеличивается с 0.8 до 0.4 секунды, это очень круто!

Есть ещё один способ использования frozen для больших или редко обновляемых сайтов. Для этого frozen: + указываем в общем page-data.php, что будет эквивалентно включению «заморозки» для всех страниц. После редактирования записей, достаточно вручную сбросить кэш (кнопка «Сброс кэша» в админке), после чего кэш перестроится «на чистовую» и дальше, за счёт frozen, сайт будет работать примерно в 2 раза быстрей. Быстрее могут быть, разве что только статичные сайты!

Куки вместо php-сессий

Я всегда предпочитал php-сессии вместо http-cookies, поскольку с сессиями проще работать. Чтобы было понятно: сессия — это простой текстовый файл примерно 160 байт. Он по умолчанию создаётся для каждого посетителя и через сутки PHP его удаляет.

Для сервера это мизерная работа, но на моих сайтах случилась ddos-атака (формально — это просто нашествие ботов), что в итоге привело за сутки примерно 30..40 тысяч файлов сессий. Казус в том, что они заняли всё свободное пространство на хостинге и сайт автоматом отключился.

Из-за этого случая я понял, что от сессий следует отказаться в пользу обычных кук. В общем-то задача не очень сложная, но есть много тонкостей и нюансов. В Albireo CMS куки шифруются и соблюдаются разные условия безопасности, которые поддерживают все современные браузеры. Я добавил новые настройки в config.php, где можно задавать разное время жизни кук.

При этом функции сессий оставил в комплекте системы. В принципе, если будет стоять задача по использованию сессий, например для юзеров, то всё уже будет готово.

Такая переделка фактически свела на нет многочисленные атаки ботов. Поскольку система теперь просто «отфутболивает» куку, то у неё нулевая нагрузка на сервер при атаке. Для простых хостингов, особенно, где есть ограничение на «иноды» — это приятная возможность.

Безопасность

Отдельно отмечу этот пункт, поскольку я много времени провёл для переделки кода на многочисленные проверки безопасности. Это не только токены защиты, но и файловой защиты, например от атак Path Traversal.

Важное изменение касается указанию разных разделителей путей. Для Linux это /, а для Windows \. Обычно я использую стандартную DIRECTORY_SEPARATOR, но сложность в том, что всегда приходится учитывать эти нюансы, а это усложняет код.

Поскольку в Windows точно также можно использовать /, то я решил, что пусть везде будет только этот разделитель. Соответственно это упростило код и многочисленные проверки.

В системе появились новые функции для проверок и фильтрации данных. Так что я считаю, что Albireo CMS достаточно хорошо защищена.

Кроме этого я ещё немного доработал функции отладки и профилирования кода.

Система теперь более корректно перехватывает php-ошибки так, что в случае возможности, код продолжит выполнение (будет сообщение).

Админ-панель

Много изменений по админке. И визуальных и по сути. Из самых интересных отмечу два.

Первое — при редактировании записи, если открыть в другой вкладке браузера, то она автоматически обновится при сохранении текста. Это особенно круто выглядит в браузерах, которые поддерживают разделение экрана: с одной стороны текст, с другой предпросмотр. Работает через современный BroadcastChannel.

Второе — это загрузка изображений из буфера обмена в текстовый редактор. Есть особенность работы с буфером: он в формате PNG, даже если исходный файл другого формата, например JPG или WEBP.

То есть, скажем jpg-файл на диске занимает 3Мб, но если его скопировать в буфер обмена, то он окажется 20-30Мб в png-формате. Когда происходит вставка в текстовый редактор Albireo CMS, то фактически это означает, что нужно будет отправить на сервер весь этот объем (20-30Мб трафика).

Поскольку многие сервера не позволяют отправлять такой размер, то будет вываливаться php-предупреждение о превышении лимита post-запроса.

Так что Albireo CMS сама проверит все лимиты и в случае превышения автоматом попробует преобразовать большой файл в сжатую версию webp-файла средствами самого браузера. И только потом этот уменьшенный размер (обычно до 100Кб!) уйдёт на сервер.

Вторая колонка контента

Это новая возможность, когда можно прямо через поле main-grid: + добавить aside-колонку к своему контенту. Внутри колонки можно разместить текст или extras-файл.

Очень удобная штука для документации. Я сделал специальный extras-файл doc-toc.php для навигации по статье.

Фишка в том, что это позволяет разделить контент на две колонки без правки layout-файла. Работает почти на всех модульных сетках автоматом.

Структура каталогов

Изменения по каталогам достаточно существенны.

Каталог шаблонов раньше размещался в website/templates, теперь же в корневом templates. Это изменение связано с тем, что для мультисайта с 99% вероятностью шаблон будет один и тот же, поэтому всё равно приходилось его переносить выше и прописывать новые константы.

Также поменял расположение каталог сниппетов. Раньше он был в website/snippets, теперь на уровень глубже: website/service/snippets. То есть идея в том, что в website будут только pages, config, uploads и service, который и будет содержать все прочие дополнения. Каталог service скорее всего будет меняться редко, поэтому такое деление позволяет упростить обновление.

Каталог pages/specific особенный, но теперь я его немного «разгрузил». Демо-примеры выделены отдельным каталогом pages/examples, а внутри остались только рабочие страницы. Для обновления их можно просто перезаписать.

Чуть раньше я убрал admin-страницы из specific в системный каталог. То есть раньше нужно было следить ещё за ними, теперь система сама берёт на себя их обслуживание.

Дополнительные данные

Я специально подчеркиваю, что Albireo CMS не «голая» система — в комплекте много готовых данных и примеров. Они годятся для начального наполнения сайта. Это очень актуально для новичков, которые только поставили систему и не понимают что делать дальше. Здесь же полное наполнение и все примеры.

В комплект я включил каталог notes для личных заметок (я об этом писал раньше). Также сохранил shorts (для «коротышей»), а также prompts — коллекция промптов для AI.

В examples/pureblog размещён пример «PureBlog», о котором я писал раньше.

Разметка TextSimpte и Markdown

Я всё дальше развиваю TextSimple, добавляю новые возможности, исправляю ошибки.

На текущий момент я просто не вижу необходимости использовать какой-то другой парсер, поэтому библиотеку Parsedown (аля-Markdown) я убрал из комплекта системы. Она старая и плохо работает, поэтому не вижу смысла держать такой некачественный код в системе.

TextSimple я позиционирую в первую очередь для тех, кто уважает HTML и хочет писать код чуточку проще. Синтаксис Markdown достаточно примитивный, но совершенно не предназначен для смешивания с HTML. Поскольку все сайты работают только на HTML, то критически важно иметь парсер, который будет хорошо работать именно с HTML, а Markdown — это скорее приятный бонус.

Именно так я понимаю TextSimple — в первую очередь это HTML. Поэтому в TextSimple не будет некоторых md-разметок (например таблица по другому), потому что основа должна исходить из HTML.

API Albireo CMS

Поскольку сейчас все «помешаны» на AI, то ставится вопрос о том, чтобы этот самый AI мог бы управлять сайтом через API. Поэтому я начал работы по созданию API, но пока сама библиотека не в комплекте системы.

Сложность в том, что API нужно как-то использовать и для этого я написал (с помощью Gemma) Python-программку, которая делает нужные запросы к серверу. Также есть токенизация, то есть всё серьёзно.

Но, поскольку я никогда не работал с AI-агентами, то понятия не имею как именно нужно что-то там подключать. Из того, как я понимаю, намного проще дать доступ к каталогу pages, чтобы AI там «резвился», чем объяснять ему сложные команды API. Поскольку Albireo CMS — это Flat-File, то просто нет необходимости создавать api-команды для получения данных — все они сразу доступны в виде рабочих файлов.

Поэтому на текущий момент API я перевёл в режим «coming soon». Если кто-то захочет поэкспериментировать и показать что именно нужно делать, то я готов к сотрудничеству.

Lite-версия

Важное изменение касается бесплатной Lite-версии Albireo CMS. Теперь она более функциональна и имеет практически те же возможности, что и полная.

Разница в том, что в ней нет и не будет админ-панели, а также того, что с этим связано, например статистика и комментарии, поскольку для этого админ-панель и нужна.

Lite-версию я рассматриваю как версию Albireo CMS для тех, кто хочет её пощупать перед покупкой, а также для тех, кому просто не нужна вся функциональность. Скажем, для лендинга Lite-версии будет более чем достаточно.

Если вы фрилансер и делаете сайты на заказ, то Lite-версия отличный выбор для клиента. Позже он сам решит нужна ли ему полная версия.

Ну и конечно Lite-версия отлично подходит для тех кто делает документацию. Поскольку доки — это всегда файлы, то разработчику будет привычно работать с ними напрямую без админ-панели.

Конечно, админ-панель даёт более удобное управление сайтом и ряд других возможностей, но моя принципиальная позиция в том, что Flat-File CMS обязана управляться и полноценно работать без админ-панели.

Albireo CMS Lite на GitHub

Часть кода Lite-версии я разместил на github. Здесь размещается открытая часть системы — по сути это каталоги website и templates.

Вторая часть — закрытая — это каталог system необходимо скачивать отдельно.

Такое разделение связано с тем, что system-часть состоит из шифрованных phar-файлов, которые я был хотел защитить от нелегального копирования. Очевидно, что на GitHub'е это сделать проблематично.

Пока для получения второй части Lite-версии нужно написать мне в telegram. Это временное решение, пока я не сделаю автоматическую раздачу файлов.

На GitHub'е вы можете оставить свои замечания (вкладка «Issues»). Там же можете предложить новые идеи. Кроме этого работает наш tg-чат.

Roadmap

Я давно уже отказался от строительства планов более чем на два дня. Война вносит своё существенное влияние, а значит пока она не закончится, я даже не рассматриваю вопросы продвижения системы или какого-то «пиара». Я прекрасно понимаю, что для большинства людей, создание сайтов сейчас далеко не первая необходимость.

Вместе с тем, у меня много идей и мыслей по поводу Albireo CMS. Я хочу поблагодарить тех, кто покупает полные версии, а также тех, что донатит на развитие системы! Для меня это важно, спасибо!

Что дальше? Этой версией я хочу зафиксировать основные изменения и надеюсь, что пертурбации по структуре файлов и каталогов «устаканятся». Пока я вынашиваю две основные идеи, где одна направлена на пользователей системы (а также частично и для пользователей шаблона MF для MaxSite CMS), чтобы у них была возможность использовать готовые модули для своих сайтов, а вторая — это проект, который поможет лучше показать возможности Albireo CMS.

Похожие записи
Оставьте комментарий!