Remark42 logo

Remark42

Self-hosted comment engine that doesn't spy on users

Alternative to: disqus, commento, facebook comments


Remark42 is a lightweight, self-hosted comment engine you embed on a blog or article page in place of Disqus or Facebook Comments. It supports social and email login, nested threads, markdown, voting, and moderation tools, storing everything in a single local file with no external database or user tracking required.

Remark42 Docker Compose example

Self-host Remark42 on your own server, homelab, or VPS starting from this Docker Compose example. It runs Remark42 in Docker containers using the official ghcr.io/umputun/remark42:latest image, with persistent volumes and automatic restarts preconfigured. Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.

services:
  remark42:
    image: ghcr.io/umputun/remark42:latest
    restart: unless-stopped
    volumes:
      - data:/srv/var
    environment:
      # Site identifier(s) for the comment widget. Comma-separated when hosting
      # comments for multiple sites from one instance.
      SITE: "remark"
      # Public URL where Remark42 is served (no trailing slash), e.g.
      # https://comments.example.com. Must match how the browser reaches it.
      REMARK_URL: "changeme"
      # Secret key used to sign JWT/auth tokens. Use a long random string.
      SECRET: "changeme"
      # Allow anonymous commenting so the instance is usable before an OAuth
      # provider is configured. Set to "false" to require login.
      AUTH_ANON: "true"
      # Enable the emoji picker in the comment editor.
      EMOJI: "true"
      # Comma-separated list of user IDs granted admin rights (format:
      # provider_userid, e.g. github_1234567). Leave empty to set later.
      ADMIN_SHARED_ID: ""
      # Google OAuth client id / secret (optional social login provider).
      AUTH_GOOGLE_CID: ""
      AUTH_GOOGLE_CSEC: ""
      # GitHub OAuth client id / secret (optional social login provider).
      AUTH_GITHUB_CID: ""
      AUTH_GITHUB_CSEC: ""

volumes:
  data:

Values set to changeme are required — replace them with your own values before starting Remark42.

Prefer a managed setup? WinterFlow installs, configures, and updates Remark42 for you using this same Docker Compose configuration.