Remark42 вместо Disqus: комментарии без трекеров, но и без экосистемы
Disqus бесплатен для читателя ценой рекламы, трекеров и профиля поведения, который платформа собирает по всей сети сайтов, где стоит её виджет. Remark42 — self-hosted альтернатива на Go: один бинарник, своя база на вашем сервере, никакой чужой рекламы под постами. Но это не значит «то же самое, только без слежки» — вместе с трекерами вы теряете и то, за что Disqus на самом деле держат: готовую аудиторию с аккаунтами, модерацию с историей на миллионы сайтов и рекламные деньги, которые Disqus платит владельцам крупных блогов. Разберём честно, что вы получаете и что теряете при переходе.
Содержание
- Что такое Remark42 и почему это одна бинарка, а не набор сервисов
- Установка через Docker Compose — рабочий файл и переменные
- Что реально выигрывает читатель и вы: приватность без трекеров
- Авторизация читателей: OAuth-провайдеры и что теряется без аккаунта Disqus
- Модерация и антиспам — где Remark42 слабее платформы с миллионами пользователей
- Чего у Remark42 нет вообще: монетизация, экосистема, готовая интеграция
Что такое Remark42 и почему это одна бинарка, а не набор сервисов
Remark42 написан на Go и собран так, чтобы админу было максимально просто: сервер — это один исполняемый файл (или один Docker-образ), который отдаёт и REST API, и уже собранный фронтенд виджета, и админ-панель для модерации. Никакого отдельного процесса для API и отдельного для UI — что сразу отличает его от связок вроде Discourse, где под капотом Ruby on Rails, Redis, PostgreSQL и Sidekiq одновременно.
По умолчанию Remark42 хранит комментарии в BoltDB — встроенной файловой базе, для которой не нужен отдельный сервер СУБД. Для блога с обычной посещаемостью это удобно: меньше движущихся частей, меньше того, что может сломаться при обновлении Ubuntu или упасть при перезапуске контейнера. У BoltDB, как и у любого файлового хранилища, есть потолок по конкурентной нагрузке на запись — для личного блога или блога компании с несколькими обсуждениями в день это не проблема, но это стоит держать в голове, если планируете площадку с высокой одновременной активностью в комментариях.
Логика такая: сайт отдаёт статический HTML (или страницу WordPress, Ghost, Hugo — не важно), в него подключается JS-виджет Remark42, который через iframe рисует форму комментариев и тянет данные с вашего сервера по REST API. Никакого стороннего домена в запросах читателя не появляется — весь трафик идёт на ваш поддомен.
Установка через Docker Compose — рабочий файл и переменные
Разворачивать Remark42 проще всего в Docker — образ umputun/remark42 уже содержит и бэкенд, и собранный фронтенд. Минимальный docker-compose.yml:
services:
remark42:
image: umputun/remark42:latest
container_name: remark42
restart: unless-stopped
environment:
- REMARK_URL=https://comments.example.com
- SITE=example.com
- SECRET=замените-на-длинную-случайную-строку
- AUTH_ANON=true
- AUTH_EMAIL_ENABLE=true
- ADMIN_SHARED_ID=auth-id-администратора
- STORE_BOLT_PATH=/srv/var/db
- BACKUP_PATH=/srv/var/backup
- TIME_ZONE=Europe/Moscow
volumes:
- ./var:/srv/var
ports:
- "8080:8080"
Ключевые переменные, на которые стоит обратить внимание:
REMARK_URL— публичный адрес самого Remark42 (обычно отдельный поддомен вродеcomments.example.com), не адрес основного сайта;SITE— домен, для которого разрешены комментарии; можно перечислить несколько через запятую, если Remark42 обслуживает несколько ваших сайтов;SECRET— секрет для подписи токенов, генерируется один раз и не меняется без последствий (все текущие сессии читателей слетят);ADMIN_SHARED_ID— ID пользователей (в формате провайдера авторизации), которым выдаются права модератора;STORE_BOLT_PATHиBACKUP_PATH— куда пишутся база и автоматические бэкапы; оба каталога обязательно должны попадать в volume, иначе комментарии исчезнут при пересоздании контейнера.
Дальше нужен реверс-прокси с SSL перед контейнером — Remark42 сам по себе слушает HTTP на 8080-м порту и TLS не терминирует. Если ещё не определились, что ставить перед контейнерами на сервере, у нас есть отдельное сравнение Traefik и Nginx Proxy Manager — для одного сервиса вроде Remark42 обычно достаточно любого из двух.
После того как контейнер поднят и проксирован, на странице сайта подключается сам виджет:
<div id="remark42"></div>
<script>
var remark_config = {
host: "https://comments.example.com",
site_id: "example.com"
};
(function(c) {
for (var i = 0; i < c.length; i++) {
var d = document, s = d.createElement('script');
s.src = remark_config.host + '/web/' + c[i] + '.js';
s.defer = true;
(d.head || d.body).appendChild(s);
}
})(remark_config.components || ['embed']);
</script>
Дальше — авторизация читателей и первый администратор, который создаётся через тот самый ADMIN_SHARED_ID и подтверждается входом под соответствующим провайдером.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать VPSЧто реально выигрывает читатель и вы: приватность без трекеров
Это тот пункт, где Remark42 честно выигрывает у Disqus, а не просто выглядит идеологически привлекательнее. Disqus в базовой бесплатной конфигурации показывает рекламу в блоке комментариев и собирает данные о поведении посетителя для таргетинга — это открыто написано в их политике монетизации, и именно так Disqus остаётся бесплатным для владельцев сайтов. Для читателя это означает лишний скрипт с трекером, для владельца сайта — баннер согласия на куки, который по GDPR и 152-ФЗ формально нужен из-за стороннего трекинга в комментариях, даже если остальной сайт от трекеров чист.
Remark42, развёрнутый на вашем сервере, не тянет ничего стороннего: ни рекламы, ни аналитики, ни куки для профилирования. Все данные — сами комментарии, email при подписке на уведомления, если читатель её включил, — остаются в вашей базе. Это не только вопрос принципа: для сайтов, которые уже проходят по GDPR или отчитываются перед бизнес-партнёрами о списке сторонних сервисов, обрабатывающих данные посетителей, self-hosted виджет комментариев закрывает одну из строчек в этом списке. Если тема соответствия GDPR для вас актуальна шире, чем просто комментарии, у нас есть разбор цены соответствия GDPR для небольшого сервиса.
Второй практический эффект — скорость страницы. Виджет Disqus подгружает довольно тяжёлый JS с рекламными скриптами и трекерами третьих сторон, что заметно на мобильном интернете. Виджет Remark42 легче за счёт того, что в нём нет рекламной инфраструктуры — но точную разницу в миллисекундах для вашего конкретного сайта озвучивать не будем: она зависит от того, сколько уже загружено на странице, и правильно её замерить можно только на своём трафике через Lighthouse или аналогичный инструмент.
Авторизация читателей: OAuth-провайдеры и что теряется без аккаунта Disqus
Remark42 поддерживает вход через несколько OAuth-провайдеров — Google, GitHub, Facebook, Telegram, Яндекс — плюс анонимные комментарии (при включённом AUTH_ANON) и вход по email-ссылке без пароля. Настраивается каждый провайдер отдельно: нужно завести приложение в консоли разработчика соответствующего сервиса, получить client ID и client secret, прописать их в переменных окружения (AUTH_GOOGLE_CID/AUTH_GOOGLE_CSEC и аналогично для остальных).
Здесь и начинается первая настоящая потеря по сравнению с Disqus. У Disqus огромная база уже зарегистрированных читателей: у человека, который годами оставляет комментарии под тысячами блогов через один аккаунт Disqus, там накоплена репутация, история, иногда узнаваемость (бейджи, статус модератора на других площадках). Он открывает форму комментария на вашем сайте — и уже залогинен, потому что Disqus помнит его между сайтами. С Remark42 такого сетевого эффекта нет и не может быть: это отдельный сервер для отдельного сайта (или группы ваших сайтов), и читателю придётся заново пройти OAuth именно у вас, даже если у него уже есть аккаунт Remark42 на каком-то другом сайте с этим движком.
На практике это означает более высокий порог для первого комментария. Часть читателей, готовых лениво кликнуть «войти через Disqus» на автомате, не станут проходить OAuth заново ради одного комментария на новом для них сайте. Смягчить это можно включённой анонимной формой (AUTH_ANON=true) — но тогда встаёт вопрос модерации и защиты от спама без привязки к аккаунту, а это уже следующий пункт.
Модерация и антиспам — где Remark42 слабее платформы с миллионами пользователей
У Remark42 есть рабочая админ-панель: список последних комментариев по всем подключённым сайтам, возможность удалить, заблокировать пользователя по ID, посмотреть IP и user-agent при необходимости расследовать инцидент, включить премодерацию для конкретного треда. Через email, Telegram или Slack можно настроить уведомления о новых комментариях (NOTIFY_ADMINS, NOTIFY_TYPE и связанные переменные) — это закрывает базовый рабочий процесс модератора одного или нескольких блогов.
Но у этого набора инструментов нет того, что стоит за модерацией Disqus — многолетней базы спам-паттернов, собранной по миллионам сайтов одновременно. Когда спамер регистрирует новый аккаунт и рассылает однотипный текст по тысячам блогов на Disqus, платформа видит этот паттерн сразу на всей своей сети и блокирует до того, как большинство владельцев сайтов вообще заметят проблему. Remark42 видит только то, что происходит на вашем собственном сервере — базовая эвристика (лимиты на частоту постинга, простые фильтры) есть, но обучающейся на миллионах сайтов антиспам-системы уровня крупной SaaS-платформы у одного self-hosted инстанса просто не может быть по определению — не потому что Remark42 сделан хуже, а потому что для этого нужна чужая база трафика, которой у одного сайта физически нет.
Практический вывод: для блога с умеренным трафиком и активной модерацией своими силами это не проблема — вы и так читаете все комментарии. Для крупной площадки с сотнями новых комментариев в день стоит закладывать время администратора на разбор спама или добавлять перед Remark42 сторонний антиспам-сервис, если один появится с подходящим API — на момент написания статьи готовой интеграции с крупными антиспам-провайдерами уровня Akismet у Remark42 нет.
Чего у Remark42 нет вообще: монетизация, экосистема, готовая интеграция
Три вещи, которые Disqus даёт «из коробки» и которые Remark42 не даёт принципиально, потому что это другая модель:
Монетизация за счёт рекламы. Disqus зарабатывает на рекламе в блоке комментариев и делится частью выручки с крупными паблишерами через партнёрские программы. Remark42 — не рекламная платформа, у него нет и не будет встроенного рекламного инвентаря. Если реклама в комментариях была частью вашей модели дохода, self-hosted замена эту статью дохода просто убирает — компенсировать её нужно другими способами, либо признать, что вы меняете доход от рекламы на приватность читателей и контроль над данными.
Сетевой эффект и узнаваемость виджета. Форма Disqus узнаваема визуально — читатель видит знакомый интерфейс и понимает, что делать, не думая. Виджет Remark42, при всей его аккуратности, для большинства читателей — незнакомый UI на конкретном сайте. Это не блокирующая проблема, но лишняя доля секунды сомнения на новом интерфейсе есть, и с этим ничего не поделать, пока Remark42 не станет так же массово узнаваем, как Disqus.
Готовая интеграция с существующими аккаунтами читателей. Если у вас были комментарии в Disqus и вы переезжаете, старые комментарии не переносятся автоматически «бесшовно» — Remark42 поддерживает импорт экспортированного XML из Disqus через встроенную команду импорта (remark42 import -p disqus), но сами читательские аккаунты Disqus в это не входят: импортированные комментарии привяжутся к записям без активной сессии старого автора, и переавторизовываться читателям придётся заново при следующем визите. Экспорт нужно заранее запросить через панель администратора Disqus — процесс занимает некоторое время на их стороне, закладывайте его отдельно от времени на саму миграцию сервера.
Если для вас эти ограничения выглядят некритично на фоне выигрыша в приватности — Remark42 закрывает задачу полностью. Если монетизация через рекламу в комментариях или узнаваемость виджета для аудитории критичны — это стоит учесть до переезда, а не после.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать VPSНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Remark42 бесплатен?
Да, это open-source проект, лицензия MIT. Платите только за сервер, на котором он работает.
Нужна ли отдельная база данных вроде PostgreSQL?
Нет, по умолчанию используется встроенная BoltDB на файловой системе. Внешняя СУБД не обязательна, что упрощает установку и снижает требования к ресурсам сервера.
Можно ли перенести старые комментарии из Disqus?
Да, через встроенную команду импорта из экспортированного Disqus XML. Аккаунты читателей при этом не переносятся — только сами тексты комментариев, привязанные к соответствующим постам.
Сколько ресурсов сервера нужно Remark42?
Для блога с умеренной посещаемостью достаточно самого скромного VPS — Go-бинарник и файловая база не требовательны к памяти. Точные цифры зависят от объёма трафика и числа одновременных читателей, оставляющих комментарии, поэтому ориентируйтесь на минимальную конфигурацию и увеличивайте при необходимости.
Что делать со спамом без встроенного Akismet-уровня защиты?
Включить премодерацию для новых участников через админ-панель, настроить уведомления о новых комментариях в Telegram или email и разбирать их вручную либо силами модератора — для большинства блогов этого достаточно.
Remark42 работает со статическими сайтами на Hugo или Astro?
Да, виджет подключается через обычный JS-сниппет и не требует бэкенда самого сайта — это одна из типичных связок для статических генераторов.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →