Лёгкая самодостаточная 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/
Личный проект Александра