<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Remark42 on Kliku Kliku</title><link>https://klikukliku.dev/tags/remark42/</link><description>Recent content in Remark42 on Kliku Kliku</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 24 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://klikukliku.dev/tags/remark42/index.xml" rel="self" type="application/rss+xml"/><item><title>remark42 in Hugo: a cross-domain session without third-party cookies</title><link>https://klikukliku.dev/posts/hugo-comments-remark42/</link><pubDate>Fri, 24 Jul 2026 00:00:00 +0000</pubDate><guid>https://klikukliku.dev/posts/hugo-comments-remark42/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;This is another post in the series about comment systems for Hugo. In the previous one I set up the remark42 app itself on a VPS alongside the existing &lt;code&gt;caddy-docker-proxy&lt;/code&gt;: &lt;strong&gt;&lt;a href="https://klikukliku.dev/posts/remark42-self-hosted-vps/"&gt;Self-hosting remark42 alongside an existing Caddy on a VPS&lt;/a&gt;
&lt;/strong&gt;. The backend replies &amp;ldquo;pong&amp;rdquo;, the BoltDB database accepts writes. But those aren&amp;rsquo;t yet comments under posts. For them to appear on the page you need to wire in the widget: a piece of JavaScript that causes an iframe with a thread list and a form to be created.&lt;/p&gt;</description></item><item><title>remark42: GitHub OAuth and email notifications via transactional SMTP</title><link>https://klikukliku.dev/posts/remark42-oauth-i-powiadomienia-mailowe/</link><pubDate>Fri, 17 Jul 2026 00:00:00 +0000</pubDate><guid>https://klikukliku.dev/posts/remark42-oauth-i-powiadomienia-mailowe/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In &lt;strong&gt;&lt;a href="https://klikukliku.dev/posts/remark42-self-hosted-vps/"&gt;Self-hosting remark42 alongside an existing Caddy on VPS&lt;/a&gt;
&lt;/strong&gt; I set up a remark42 instance with a minimal configuration. The container runs, the widget embeds on the blog, everyone can comment as anonymous. The starter setup is functional enough to prove something works, but it has two gaps that show up on day one of real use: no meaningful authentication and no notifications of any kind, which means a new comment can only be noticed by manually visiting posts.&lt;/p&gt;</description></item><item><title>Self-hosting remark42 alongside an existing Caddy on VPS</title><link>https://klikukliku.dev/posts/remark42-self-hosted-vps/</link><pubDate>Fri, 10 Jul 2026 00:00:00 +0000</pubDate><guid>https://klikukliku.dev/posts/remark42-self-hosted-vps/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m continuing the series reviewing comment systems for Hugo. After &lt;strong&gt;&lt;a href="https://klikukliku.dev/posts/cusdis-self-hosted-vps/"&gt;Self-hosting Cusdis with Caddy on VPS&lt;/a&gt;
&lt;/strong&gt; it&amp;rsquo;s time for &lt;a href="https://github.com/umputun/remark42" target="_blank" rel="noopener"&gt;remark42&lt;/a&gt;
. Unlike Cusdis (which has a managed version at &lt;code&gt;cusdis.com&lt;/code&gt;) and Disqus (which is SaaS only), remark42 does not offer a managed variant. The only path is self-hosting. If you want to try remark42 at all, this post covers exactly that setup.&lt;/p&gt;
&lt;p&gt;The setup from the previous post has grown since then. To the Caddy dedicated to Cusdis (configured via a &lt;code&gt;Caddyfile&lt;/code&gt;, ports 80/443 on the host) I added several more services. Each one had to be appended to that same &lt;code&gt;Caddyfile&lt;/code&gt;, which grew tedious and typo-prone with more entries. So I switched to &lt;a href="https://github.com/lucaslorentz/caddy-docker-proxy" target="_blank" rel="noopener"&gt;&lt;code&gt;lucaslorentz/caddy-docker-proxy&lt;/code&gt;&lt;/a&gt;
: a single Caddy instance that builds its proxy configuration from Docker labels on the containers. Cusdis was migrated onto this pattern too.&lt;/p&gt;</description></item></channel></rss>