Лёгкая самодостаточная CMS, построенная с упором на простоту, безопасность и расширяемость.

Текущая версия — 3.0-preview. Архитектура системы в основном сформирована, при этом дальнейшее развитие и доработка продолжаются.

Основные возможности

  • Лицензия MIT/X11. Система не требует размещения копирайтов, реферальных ссылок или иных обязательных атрибутов, подтверждающих использование CMS.
  • Нулевая зависимость от стороннего PHP-кода. Eleanor CMS не использует сторонние PHP-библиотеки или фреймворки.
  • Фронтенд не требует сборки. Встроенные JavaScript- и CSS-файлы не требуют компиляции через npm или другие инструменты сборки.
  • Одновременная работа с несколькими пользователями. На одном устройстве можно одновременно открыть несколько учётных записей в отдельных вкладках браузера. Один пользователь также может быть авторизован на нескольких устройствах.
  • Двухфакторная аутентификация и восстановление доступа. Можно включить TOTP-аутентификацию через приложение-аутентификатор. Для восстановления доступа используются одноразовые резервные коды; при включённой двухфакторной аутентификации доступ можно подтвердить любыми двумя из трёх факторов: паролем, TOTP или резервным кодом.
  • Групповая система прав доступа. Права пользователей определяются их принадлежностью к группам и назначенными этим группам ролями. Один пользователь может входить в несколько групп.
  • Минимальное использование cookie. Для авторизации используется одна cookie. В сочетании с явной опцией «Запомнить меня» она относится к аутентификационным cookie, для которых отдельное согласие пользователя обычно не требуется.
  • Защита от XSS через CSP. Выполнение inline-скриптов запрещено политикой Content Security Policy.
  • Защита от CSRF. Изменяющие состояние браузерные запросы принимаются только из того же origin с использованием Fetch Metadata.

Архитектура

  • Модульная структура. Функциональность системы разделена на юниты.
  • Расширяемость без глубокой интеграции. Минимальный юнит может состоять всего из одного файла и не требует регистрации в конфигурации системы. Классы, интерфейсы, трейты и перечисления автоматически загружаются при размещении в соответствующих каталогах.
  • ЧПУ по классическому принципу каталогов и файлов. URL-структура строится без централизованного роутера: адреса напрямую отражают организацию разделов и ресурсов системы.
  • Асинхронные события. Действия, не требующие немедленного выполнения, могут обрабатываться отдельно от основного запроса.
  • Поддержка командной строки. Eleanor CMS предоставляет общий CLI-интерфейс, через который юниты могут добавлять собственные команды.

Установка и разработка

  • Систему можно устанавливать как через браузер, так и из командной строки. CLI-установщик поддерживает проверку конфигурации и режим dry-run.
  • Исходный код документирован: структура проекта, каталоги, файлы и основные элементы кода снабжены пояснениями, описывающими их назначение.
  • Автор учитывает результаты синтетических тестов сайтов. Высокие оценки PageSpeed Insights и PR-CY (и не только) этого маленького сайта тому пример 😎.

Вдохновение черпалось из https://thebestmotherfucking.website/

Личный проект Александра