Skip to main content

Remark42

Purpose: Open source commenting system for websites. Lightweight, self-hosted alternative to Disqus and other third-party commenting platforms.

Last verified: December 2025


Account Details

  • Notes: Open source commenting system installed on Pacing blog, can be used for clients
  • Category: SELF_HOSTING
  • Account type: INTERNAL, CLIENT_ACCESS
  • Created: December 2025
  • Account owner: Ben Power

Overview

Remark42 is a lightweight, self-hosted commenting system designed to be privacy-focused and efficient. It provides a modern commenting interface that can be embedded on any website, replacing third-party solutions like Disqus.

Key Features:

  • Privacy-focused (self-hosted, no third-party tracking)
  • Lightweight resource usage (~80MB RAM, minimal CPU)
  • Multiple authentication providers (Google, Facebook, Twitter, GitHub, etc.)
  • Real-time updates
  • Moderation tools
  • Spam protection
  • Export capabilities
  • GDPR compliant

System Requirements (from production usage):

  • CPU: Minimal usage (typically under 0.1%)
  • Memory: ~80MB RAM (less than 4% of 2GB)
  • Network: Moderate bandwidth requirements
  • Disk: Small footprint (under 200MB for a 5-year-old installation with regular activity)

Installation

The recommended way to run Remark42 is using Docker:

  1. Copy provided docker-compose.yml and customize for your needs
  2. Ensure ADMIN_PASSWD is not kept for non-development deployments
  3. Pull prepared images: docker compose pull && docker compose up -d
  4. Or compile from sources: docker compose build && docker compose up -d

Binary Installation

  1. Download archive for the stable release
  2. Unpack with gunzip (Linux, macOS) or zip (Windows)
  3. Run as: remark42.{os}-{arch} server {parameters...}
    • Example: remark42.linux-amd64 server --secret=12345 --url=http://127.0.0.1:8080
  4. Or compile from sources: make OS=[linux|darwin|windows] ARCH=[amd64,386,arm64,arm]

Systemd Service Installation

For a clean persistent setup:

  1. Create environment file /etc/remark42.env:

    SECRET=12345
    REMARK_URL=http://127.0.0.1:8080
  2. Create systemd service file /etc/systemd/system/remark42.service:

    [Unit]
    Description=Remark42 Commenting Server
    After=syslog.target
    After=network.target

    [Service]
    Type=simple
    EnvironmentFile=/etc/remark42.env
    ExecStart=/usr/local/bin/remark42 server
    WorkingDirectory=/var/www/remark42
    Restart=on-failure
    User=nobody
    Group=nogroup

    [Install]
    WantedBy=multi-user.target
  3. Enable and start the service:

    sudo systemctl enable remark42.service
    sudo systemctl start remark42.service
  4. To update configuration, edit the environment file and restart:

    sudo systemctl restart remark42.service

Frontend Integration

Basic Setup

Add config for Remark42 on your website page:

<script>
var remark_config = {
host: "REMARK_URL",
site_id: "YOUR_SITE_ID",
}
</script>

Example:

<script>
var remark_config = {
host: "https://demo.remark42.com",
site_id: "remark",
}
</script>

Embed Script

Place this code snippet right after the config:

<script>!function(e,n){for(var o=0;o<e.length;o++){var r=n.createElement("script"),c=".js",d=n.head||n.body;"noModule"in r?(r.type="module",c=".mjs"):r.async=!0,r.defer=!0,r.src=remark_config.host+"/web/"+e[o]+c,d.appendChild(r)}}(remark_config.components||["embed"],document);</script>

Comments Container

Add this HTML where you want comments to appear:

<div id="remark42"></div>

The widget will be rendered inside this node.

Quick Installation Test

To verify if Remark42 has been properly installed, check a demo page at ${REMARK_URL}/web URL. Make sure to include remark site ID to the ${SITE} list.


Hosting

Provider: Hetzner Cloud
Project: Comments1 (Project ID: 12402044)
Server: remark42 (Server ID: 112749374)
Public IP: 91.98.226.29
Location: Nuremberg, Germany (nbg1-dc3)

Server Specifications:

  • Type: CPX21
  • vCPUs: 3 cores (shared)
  • RAM: 4 GB
  • Disk: 80 GB (local storage)
  • Monthly Cost: €7.05
  • OS: Ubuntu 22.04

Infrastructure Details: See tools/hetzner.md for complete server configuration and management commands.


Configuration

Required Environment Variables

  • SECRET - Secret key for session encryption
  • REMARK_URL - Public URL where Remark42 instance is served
  • SITE - Site ID (default: remark)

Optional Configuration

  • Multiple authentication providers
  • Custom themes and styling
  • Moderation settings
  • Spam protection rules
  • Backup configuration

For detailed configuration options, see the Remark42 documentation.


Use Cases

  • Pacing Blog: Currently installed on Pacing blog for comment functionality
  • Client Websites: Can be deployed for client websites as a privacy-focused commenting solution
  • Multi-site: Single instance can serve multiple sites with different site IDs

References