Установка Remark42

Updated: 2 months ago

Всё просто, никаких объяснений.
Делаем комментарии на сайте на движке Remark42, аналог Disqus’а, только свободный и у себя на сервере.

О движке

Цитата с сайта проекта:

Remark42 - это автономная, легкая и простая (но функциональная) система комментирования, которая не отслеживает пользователей. Его можно встроить в блоги, статьи или любое другое место, где читатели добавляют комментарии.

Сайт, и страница на GitHub.

Установка

Для начала создаем отдельную директорию для движка, так как все ошмётки по дефолту хранятся с исполняемым файлом, а конфигурационного файла нет, что вообще не круто.
А потом скачиваем исполняемый бинарный файл и распаковываем.

1
2
3
4
mkdir -p ~/Sites/comments

wget https://github.com/umputun/remark42/releases/download/v1.6.0/remark42.linux-amd64.tar.gz
tar -xf remark42*.tar.gz

Необходимым минимум перед запуском

Сам движок я повесил на отдельный поддомен. Вот листинг nginx.conf:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
server {
listen 80;
listen [::]:80;
listen 443 ssl;

ssl on;
ssl_certificate fullchain.pem;
ssl_certificate_key privkey.pem;

server_name f.site.me;

index index.html;

location / {
proxy_pass http://localhost:50001/;
}
}

Параметры:
--url - обязательный, адрес движка;
--secret - обязательный, ключ шифрования данных
--port=50001 - по умолчанию запускается на 8080 порту.
--site - адрес сайта.
Пока не добавил этот параметр, были проблемы с CORS и виджет вообще отказывался работать.

Запускаем:

1
./remark42.linux-amd64 server --url=https://f.site.me --site=site.me --port=50001 --secret="{SECRET}"

Авторизация пользователей

После старта работу можно проверить по адресу https://f.site.me/web/.
Чтобы активировать “анонимные” комментарии, необходимо добавить установить среды AUTH_ANON.

1
export AUTH_ANON=true

Есть поддержка следующих OAuth2 :

Я себе добавил пока только GitHub:

1
2
export AUTH_GITHUB_CID={ID}
export AUTH_GITHUB_CSEC={ID}

Встраивание

Сайт у меня построен на Hexo и используется кастомная тема.
В моём случае я поправил файл site_dir/themes/theme-name/layout/_page/post.ejs добавив следующий код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<div id="remark42"></div>
<script>
var remark_config = {
host: "https://f.site.me/",
site_id: 'site.me',
components: ['embed'],
max_shown_comments: 15,
theme: 'dark',
locale: 'en',
show_email_subscription: false
};

(function(c, d) {
for (var i = 0; i < c.length; i++) {
var s = d.createElement('script');

s.src = remark_config.host + '/web/' + c[i] + '.js';

(d.head || d.body).appendChild(s);
}
})(remark_config.components || ['embed'], document);
</script>

Установка для темы Fluid

Тут попроще.

  1. Создаём файл:
    ./themes/fluid/source/js/remark42.js
    Записываем в него код.

  2. Вносим изменение в _config.fluid.yml:

    1
    2
    3
    4
    # Custom content at the bottom of the post page (located above the footer)
    custom:
    enable: true
    content: '<div id="remark42"></div><script src="/js/remark42.js?v=1"></script>'

    Либо в настройках самого Fluid (но тогда блок вставляемся в DIV поста)

    1
    2
    3
    comments:
    enable: true
    type: remark42