Обычный Laravel-проект, а не своя вселенная с собственными правилами. Контроллеры, модели, миграции и вьюхи лежат там, где их ищет любой Laravel-разработчик — поэтому разобраться в чужом коде здесь дешевле, чем в системе с собственным «ядром» и хуками.
- 24 модуля в сборке
- PHP 8.5 минимальная версия
- PostgreSQL основная база
- MIT лицензия
Как всё устроено
Каждый раздел живёт в своей папке: контроллеры, модели, вьюхи и маршруты рядом. Модуль подключается и отключается независимо — выключенный не грузится совсем, а не прячет кнопку из меню.
Все до единой лежат в общей папке проекта, а не по модулям. Пишутся построителем схемы: боевая база PostgreSQL, тесты гоняются на SQLite, и миграция обязана работать в обеих.
Материал выбирает шаблон: лента, журнал, карточки товаров, услуги, обзоры, уроки. Новый шаблон — это одна вьюха, запись в реестре и пара строк в словарях.
Строки интерфейса — в словарях, содержимое материалов — в базе. Словари правятся прямо из панели, файлы при этом остаются в репозитории и версионируются как обычный код.
Чего здесь нет намеренно
Это не список недостатков, а решения, за которые пришлось заплатить работой — и которые определяют, каково будет сопровождать проект через год.
- Нет чужого редактора. Визуальный редактор написан свой: без баннера «купите полную версию», без внешней лицензии и без сборки в пять мегабайт. Вставленная разметка чистится по белому списку.
- Нет обращений к внешним адресам. Шрифты, значки и библиотеки лежат в проекте. Есть режим, который запрещает исходящие запросы целиком — заслон стоит на сетевом клиенте, а не в каждом сервисе по отдельности.
- Нет магии в хуках. Модуль не встраивается в чужие точки расширения — он обычный сервис-провайдер Laravel.
- Нет второго источника правды. Настройки, меню, переводы и содержимое живут по одному разу и в одном месте.
Локальная установка
- Забрать кодСклонируйте репозиторий и поставьте зависимости через Composer и npm.
- Настроить окружениеСкопируйте файл окружения, укажите базу PostgreSQL и сгенерируйте ключ приложения.
- Пройти мастерОткройте сайт в браузере — мастер проверит требования, создаст таблицы и заведёт администратора.
- Проверить сборкуПрогоните тесты: они гоняются на SQLite, отдельная база для этого не нужна.
Что стоит знать заранее
- Миграции складываются в общую папку, не в модуль
- Сторонние библиотеки подключаются локально, без внешних адресов
- Интерфейс, сообщения об ошибках и комментарии пишутся по-русски
- Тесты живут в общей папке проекта, а не внутри модулей
- База — только PostgreSQL: чужой драйвер система не примет и скажет почему
Подробности по каждому пункту — в файле памятки в корне репозитория. Он же служит точкой входа для того, кто впервые открывает проект: там разобраны не только правила, но и грабли, на которые уже наступали.
Участие в разработке
Замечания и предложения принимаются в системе задач репозитория. Если правка небольшая — присылайте сразу; если задумали крупное изменение, лучше сначала описать замысел, чтобы не разойтись в подходах.
- Laravel 13
- PostgreSQL 14+
- PHP 8.5
- Tailwind CSS
- Alpine.js
- Swiper