Вопрос или проблема
Сценарий
Я ищу быстрое и простое решение для настройки простого CMS. Я посмотрел на некоторые кандидаты, перечисленные ниже, но пока не нашел ничего подходящего.
Я хочу поддерживать только один тип контента для определенного типа содержания. Для удобства объяснения предположим, что я хочу управлять книгами. Мы собираемся разработать некоторый собственный код дополнений для обработки данных о книгах, управляющихся CMS. Система будет развернута с помощью Docker, и я хотел бы иметь возможность создать финальный образ, который может быть развернут в производственной среде.
Требования
Должны быть выполнены следующие требования:
- Работает в виде контейнера Docker. Я хотел бы создать пользовательский образ, включая наши расширения, который готов к развертыванию.
- Предоставляет форму для создания записи о новой книге и редактирования существующих записей о книгах
- Перечисляет все книги и предоставляет полнотекстовый поиск по всем данным
- Необходимо иметь возможность добавления расширений для реализации пользовательского кода для реагирования на изменения записей
- Бесплатно, желательно с открытым исходным кодом
Следующие требования были бы хороши, но не являются строго обязательными:
- Файловое хранилище
- Поддержка LDAP
- Версионирование / Аудит изменений записей
Уже рассмотренные варианты
Я уже смотрел на следующие варианты и нашел их неполноценными. Возможно, я ошибаюсь в некоторых из них, конечно.
-
Plone: это как бросить ядерную бомбу на проблему, равную по размеру булавке для волос. У него есть все необходимое, но настройка и кривое обучения находятся в совершенно другом мире.
-
Drupal: похоже, что сложно получить рабочий экземпляр Docker для полного приложения. Стандартный образ требует от вас выполнения всех видов конфигурации и установки изначально.
-
grav: не хватает поддержки LDAP, и, похоже, редактирование существующих записей о книгах затруднено
-
pico: только размещает .md файлы, но нет поддержки динамического создания контента
NemakiWare
- Предоставляет форму для добавления новых “документов”. Вы можете настроить типы документов (и их метаданные), если это необходимо.
- Перечисляет все с иерархией папок
- Полнотекстовый поиск по поддерживаемым типам файлов
- Пользовательские действия: требует модификации некоторого кода на Java.
- Docker только что был добавлен (пока вам нужно собрать файлы Docker, но образ будет доступен скоро): https://github.com/aegif/NemakiWare/tree/dockerize
- Бесплатно и с открытым исходным кодом: GNU Affero General Public License версия 3
Из раздела “хорошо бы иметь”:
- Хранение осуществляется на CouchDB, а не на файловой базе
- Пока нет поддержки LDAP
- Версионирование реализовано, вы можете вернуться к предыдущей версии
- Аудит: нет
Скриншот, показывающий метаданные и историю версий слева, а пользовательские метаданные справа (извините, на японском):
Отказ от ответственности: Я работаю в компании, которая создает NemakiWare.
Ответ или решение
Вопрос о выборе файловой CMS для управления единым типом контента, в данном случае книгами, требует тщательного анализа существующих решений. Вам необходимо учесть различные аспекты, чтобы ваш выбор соответствовал поставленным требованиям.
Сценарий использования
Вы ищете простое и быстрое решение для настройки CMS, которая сможет справляться с управлением книгами. Так как вы планируете использовать Docker для развертывания системы, важным является создание собственного образа с возможностью добавления кастомного кода для обработки данных книг.
Требования
Ваши требования требуют, чтобы CMS:
- Работала в качестве контейнера Docker.
- Предоставляла форму создания и редактирования записей книг.
- Списывала все книги с возможностью полнотекстового поиска.
- Имеет возможность расширения для добавления пользовательского кода.
- Была бесплатной и предпочтительно с открытым исходным кодом.
Дополнительные, но не строгие пожелания включают:
- Файловое хранение данных.
- Поддержка LDAP.
- Версионность и аудит изменений записей.
Рассмотренные варианты
Вы уже проанализировали несколько систем управления контентом (CMS), и вот их краткий обзор:
- Plone: Несмотря на свою мощь, она оказывается слишком сложной для вашей задачи.
- Drupal: Имеет сложную настройку и требует много конфигураций.
- Grav: Отсутствие поддержки LDAP и проблемы с редактированием существующих записей.
- Pico: Подходит для статического контента, но не обеспечивает динамического создания контента.
Рекомендация — NemakiWare
Одним из решений, которое вы могли бы рассмотреть, является NemakiWare. Это open-source система, которая обладает следующими функциональными возможностями:
- Форма добавления документов: Вы можете настраивать типы документов и метаданные для книг.
- Списки и иерархия папок: Веб-интерфейс позволяет удобно просматривать все книги.
- Полнотекстовый поиск: Пользователи могут эффективно искать книги по содержимому.
- Кастомные действия: Возможность модификации Java-кода позволяет вам настраивать поведение приложения под ваши требования.
- Docker: Поддержка Docker упрощает развертывание. Хотя изображение все еще требует сборки, процесс идет к улучшению.
Недостатки NemakiWare:
- Файловое хранение: Немак Веар использует CouchDB, а не файловое хранение. Это может стать проблемой, если вы хотите именно файловое хранение.
- Поддержка LDAP: В данный момент отсутствует.
- Версионность: Есть возможность откатиться к предыдущим версиям, однако аудит изменений не реализован.
Заключение
NemakiWare может стать подходящим вариантом для вашего проекта, предоставляя множество желаемых функций, и при этом позволяет вам разрабатывать и внедрять расширения для специфических требований. Однако вы также должны рассмотреть его ограничения, как отсутствие файлового хранения и поддержки LDAP. Эти аспекты важно учесть в зависимости от ваших конечных целей и архитектурных требований. Наконец, рекомендуется протестировать систему в действии в рамках локального окружения, тщательно оценив функционал и возможности интеграции с вашим кастомным кодом.