Вышло мажорное обновление Comentario 3.0.0 — свободного сервера комментариев c открытым исходным кодом. С его помощью можно добавлять возможность комментирования к любым статическим страницам (наподобие того, как это сделано здесь, на Хабре), вставив лишь пару HTML-тегов.
Comentario написан на Go и Angular и использует БД PostgreSQL для хранения комментариев.
Предыстория
Comentario начал своё существование в виде форка некогда популярного сервера комментариев Commento (я как-то написал пост на тему его запуска в Docker Compose).
Несколько лет назад Commento перестал обновляться, и в настоящее время он полностью заброшен. В какой-то момент меня совершенно достали его баги, и я решил исправить хотя бы их. Когда же я увидел код, передо мной разверзлась бездна то понял, что парой исправлений тут не обойтись.
Код был явно написан человеком в программировании малоопытным (похоже, это вообще был студенческий проект автора), содержал просто чудовищных косяки и был совершенно неподдерживаем и неразвиваем. Тогда-то я понял, почему автор его забросил.
Приведу лишь один пример: для загрузки дерева комментариев из БД (наиболее частая операция в данном продукте) там сначала выполнялся запрос для загрузки собственно комментов, потом по одному запросу на каждого автора комментария и — внимание! — по одному запросу на каждый коммент для получения его оценки (score). Легко себе представить, как «быстро» это работало, например, если открыть страницу с парой тысяч комментариев.
Форк получил название Comentario («комментарий» по-испански) и был полностью совместим с оригиналом в плане структуры БД в версии 2.x. При этом были значительно переработаны бэкенд и embed (встраиваемая) часть, а админка написана с нуля на Angular.
Релиз 3.0.0
В версии Comentario 3.0.0 от легаси-кода Commento не осталось практически ничего. Кроме того, структура базы данных была заново создана с нуля (разумеется, в наиболее оптимальном виде).
Из самых значительных изменений можно отметить следующее:
Роли пользователей и привилегия superuser
Возможность банить пользователей
Загружаемые аватары
Логин через Facebook (плюс к имеющемуся через Google, Twitter/X, GitHub, GitLab)
Неинтерактивный SSO
Поддержка расширений, проверяющих комменты на спам и токсичный контент, таких как Akismet и Perspective
Поддержка всех версий PostgreSQL с 10 по 16 включительно
Переработанный дашборд (см. скриншот выше)
Почти стопроцентное покрытие end-to-end-тестами
Всё это в дополнение к уже имеющимся фичам:
Комментарии неограниченной вложенности
«Закреплённые» комментарии
Голосование за комментарии
Операции с доменом (сброс, очистка, экспорт и т.д.)
Импорт комментариев из Commento и Disqus
Модерация комментариев и гибкие её настройки
Емэйл-уведомления о модерации и об ответах
Статистика просмотров и комментариев
Демо-версия
Увидеть Comentario живьём можно на демо-сайте.
Также можно поиграть с его административным интерфейсом: логиниться с емэйлом
admin@admin
и паролемadmin
(илиtest@test
/test
).