Remark42 - Self-hosted Free Comment Engine Alternative to Disqus
Remark42 is a user-friendly, self-hosted comment engine. It's designed to be lightweight and simple, yet functional. One of its key features is its respect for user privacy; Remark42 does not track or spy on its users. This makes it a great tool for embedding into blogs or articles, or anywhere you want to enable reader comments.
It offers multiple login options, including social login via Google, Twitter, Facebook, Microsoft, GitHub, Yandex, Patreon, and Telegram, as well as login via email. There's also an option for anonymous access.
The system supports multi-level nested comments, with the option for both tree and plain presentations. It also offers tools for importing comments from Disqus and WordPress.
Remark42 features Markdown support, complete with a friendly formatter toolbar for easy formatting. It also provides moderation tools, allowing moderators to remove comments and block users when necessary.
The app is written primarily in the Golang and React. It is supported and maintained by a community of developers.
Ideal for:
- Blogs
- CMS
- eCommerce Engines
- Flat CMS
- Statically Generated websites: Next.js, Nuxt, Gatsby, Astro, and React
Remark42's Primary Features
Here are some features of Remark42 in a shuffled order, with benefits explained for certain items:
- Fully dockerized and can be deployed in a single command: This simplifies the deployment process and makes it easier for users with minimal technical knowledge.
- Voting, pinning and verification system: This helps enhance user interaction and engagement by allowing users to vote on comments, pinning important comments, and verifying authenticity.
- Import from Disqus and WordPress: This allows easy transition from popular platforms without loss of previous comments.
- Self-contained executable can be deployed directly to Linux, Windows and macOS: This provides flexibility across different operating systems.
- Clean, lightweight and customizable UI with white and dark themes: The user-friendly interface makes it easy to navigate and customize to match the look and feel of your site.
- RSS for all comments and each post: This ensures users and admins are kept up-to-date with the latest comments and discussions.
- Login via email
- Markdown support with friendly formatter toolbar: This allows users to format their comments easily, improving readability and engagement.
- Telegram, Slack, Webhook and email notifications for Admins (get notified for each new comment)
- No external databases, everything embedded in a single data file: This simplifies data management and enhances data security.
- Social login via Google, Twitter, Facebook, Microsoft, GitHub, Yandex, Patreon and Telegram: Offers users various convenient options to log in.
- Sortable comments
- Multi-site mode from a single instance: This allows you to manage comments from multiple sites from one place, improving efficiency.
- Moderator can remove comments and block users: This helps in maintaining a healthy and respectful discussion environment.
- Images upload with drag-and-drop: This enhances user experience by making image uploading more straightforward and effortless.
- Integration with automatic SSL (direct and via nginx-le)
- Optional anonymous access
- Email and Telegram notifications for users (get notified when someone responds to your comment)
- Export data to JSON with automatic backups: This ensures data safety and makes it easier to move data if needed.
- Multi-level nested comments with both tree and plain presentations: This encourages in-depth discussions and makes conversations easier to follow.
- Extractor for recent comments, cross-post
- Privacy focused: Respecting user privacy is a key feature of Remark42; it does not track or spy on its users.
Install and run
You can easily download and install the app either by using Docker or running it from source.
Installation in Docker:
- To begin, please copy the
docker-compose.yml
file that has been provided to you. It is important to adjust this file according to your specific needs and requirements. - Once this is done, please ensure that you don't retain
ADMIN_PASSWD=something...
in your deployments unless they are specifically for development purposes. - Now, it's time to pull the prepared images from Docker Hub. You can do this simply by starting with the command
docker-compose pull && docker-compose up -d
. - Alternatively, if you prefer, you can compile directly from the sources. To do this, you will need to use the command
docker-compose build && docker-compose up -d
.
Installation with Binary:
- To begin, please download the archive for the stable release. This should be easily accessible.
- Once you have downloaded the archive, you will need to unpack it. If you are using Linux or macOS, you can do this with the
gunzip
command. If you are using Windows, you will need to usezip
. - Once the archive has been unpacked, you can run it as
remark42.{os}-{arch} server {parameters...}
. For example, if you wanted to run it on Linux, you would inputremark42.linux-amd64 server --secret=12345 --url=http://127.0.0.1:8080
. - Alternatively, you can compile directly from the sources. To do this, you will need to use
make OS=[linux|darwin|windows] ARCH=[amd64,386,arm64,arm]
.
You can also build and install it from source.
Use
The rest is about to setup your website.
To set up Remark42 on your website, add the configuration for Remark on a page of your site. This includes the URL where Remark42 is served and the site ID. After that, place the code snippet right after the configuration.
You can place the config with the snippet anywhere in your HTML code. Finally, put the next code snippet on a page of your site where you want to have comments, and the widget will render inside this node.
Here is an example
<script>
var remark_config = {
host: 'https://demo.remark42.com',
site_id: 'remark',
}
</script>
Then place the code snippet right after 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>
Now, place the comments code where you want the comments to appear. Insert the following code snippet on the page of your site where you desire to display comments:
<div id="remark42"></div>
License
The app is released under the MIT license