Pull to refresh

Вышел Comentario 3.0.0: сервер комментариев с открытым исходным кодом

Reading time2 min
Views4.7K
Дашборд Comentario 3.0.0
Дашборд Comentario 3.0.0

Вышло мажорное обновление 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

  • Модерация комментариев и гибкие её настройки

  • Емэйл-уведомления о модерации и об ответах

  • Статистика просмотров и комментариев

Демо-версия

Исходный код

Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
Total votes 25: ↑25 and ↓0+25
Comments12

Other news