一个开源的、独立的、可自托管的评论系统,专为现代Web平台设计

大家好,今天给大家分享的是一个开源的、独立的、可自托管的评论系统,专为现代Web平台设计。

Remark42是一个自托管的、轻量级的、简单的(但功能强大的)评论引擎,它不会监视用户。它可以嵌入到博客、文章或任何其他读者添加评论的地方。

项目介绍

Remark42提供多种登录选项,包括通过 Google、Twitter、Facebook、Microsoft、GitHub、Yandex、Patreon 和 Telegram 进行社交登录,以及通过电子邮件登录。还有一个匿名访问选项。

Remark42支持多级嵌套注释,可以选择树形和普通演示。它还提供从 Disqus 和 WordPress 导入评论的工具。

Remark42 支持 Markdown,并配有友好的格式化工具栏,可轻松格式化。它还提供审核工具,允许审核者在必要时删除评论并阻止用户。

该应用程序主要是用 Golang 和 React 编写的。由开发人员社区支持和维护。

功能特性

以下是 Remark42 的一些功能(按顺序排列),并解释了某些项目的优点:

  • 完全 Docker 化,可以通过单个命令进行部署:简化了部署过程,让具有最少技术知识的用户变得更容易。

  • 投票、置顶和验证系统:这有助于通过允许用户对评论进行投票、置顶重要评论和验证真实性来增强用户交互和参与度。

  • 从 Disqus 和 WordPress 导入:可以轻松地从流行平台进行转换,而不会丢失以前的评论。

  • 独立的可执行文件可以直接部署到 Linux、Windows 和 macOS:提供了跨不同操作系统的灵活性。

  • 干净、轻量级且可自定义的 UI,具有白色和深色主题:用户友好的界面可以轻松导航和自定义,以匹配您网站的外观和风格。

  • 所有评论和每篇帖子的 RSS:这可确保用户和管理员及时了解最新的评论和讨论。

  • 通过电子邮件登录

  • 带有友好格式化工具栏的 Markdown 支持:用户可以轻松格式化他们的评论,从而提高可读性和参与度。

  • 给管理员的 Telegram、Slack、Webhook 和电子邮件通知(每条新评论都会收到通知)

  • 无需外部数据库,所有内容都嵌入在单个数据文件中:这简化了数据管理并增强了数据安全性。

  • 通过 Google、Twitter、Facebook、Microsoft、GitHub、Yandex、Patreon 和 Telegram 进行社交登录:为用户提供各种便捷的登录选项。

  • 可排序的评论

  • 单个实例的多站点模式:这使您可以从一个地方管理来自多个站点的评论,从而提高效率。

  • 版主可以删除评论并阻止用户:这有助于维持健康和尊重的讨论环境。

  • 通过拖放上传图像:这使图像上传更加简单、轻松,从而增强了用户体验。

  • 与自动 SSL 集成(直接或通过 nginx-le)

  • 可选的匿名访问

  • 用户的电子邮件和Telegram通知(当有人回复您的评论时收到通知)

  • 通过自动备份将数据导出为 JSON:这可确保数据安全,并在需要时更轻松地移动数据。

  • 具有树形和简单演示的多级嵌套评论:这鼓励深入讨论并使对话更容易理解。

  • 最近评论的提取器,交叉发布

  • 注重隐私:尊重用户隐私是Remark42的一个关键特性;它不会跟踪或监视其用户。

安装使用

可以使用 Docker 或从源代码运行它来轻松下载和安装该应用程序。官方推荐使用Docker方式安装。

Docker 安装

  1. 首先,获取Github仓库中提供给您的 docker-compose.yml 文件。根据您的具体需要和要求调整此文件配置项。

  2. 完成此操作后,请确保您不会在部署中保留 ADMIN_PASSWD=something...,除非它们专门用于开发目的。

  3. 从 Docker Hub 中提取准备好的镜像。执行命令 docker-compose pull && docker-compose up -d 即可完成此操作。

  4. 也可以直接从源代码进行编译。执行命令 docker-compose build && docker-compose up -d

源代码运行

  1. 在项目的Github发布页,下载稳定版本的存档。

  2. 下载存档后,您需要将其解压。如果您使用的是 Linux 或 macOS,则可以使用gunzip 命令执行此操作。如果您使用的是 Windows,则需要使用 zip。

  3. 存档解压后,您可以将其作为 remark42.{os}-{arch} server {parameters...} 运行。例如,如果您想在Linux上运行它,您可以输入remark42.linux-amd64 server --secret=12345 --url=http://127.0.0.1:8080

  4. 也可以直接从源代码进行编译。为此,您需要执行编译命令 make OS=[linux|darwin|windows] ARCH=[amd64,386,arm64,arm]

在网站上放置评论组件

参考完整配置请参考官方配置文档

1.设置站点配置

  • REMARK_URL – 提供 Remark42 实例的 URL,作为 REMARK_URL 传递到后端
  • YOUR_SITE_ID - 您在启动时传递给 Remark42 实例的站点,默认为remark
<script>var remark_config = {host: 'REMARK_URL',site_id: 'YOUR_SITE_ID',}
</script>

2.初始化组件

然后将下面代码片段放在配置之后

<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>

3.放置评论组件

将评论代码放在您希望评论出现的位置。在您希望显示评论的网站页面上插入以下代码片段:

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

项目地址

https://github.com/umputun/remark42

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/862927.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spark SQL----Binary二进制文件数据源

Spark SQL----Binary二进制文件数据源 自Spark 3.0以来&#xff0c;Spark支持二进制文件数据源&#xff0c;Spark读取二进制文件&#xff0c;并将每个文件转换为包含文件原始内容和元数据的单个记录。它生成一个DataFrame&#xff0c;其中包含以下列以及可能的分区列&#xff1…

Linux端口设置ip白名单

一、 Linux 22端口设置ip白名单 在Linux系统中&#xff0c;如果您想要限制只有特定的IP地址能够访问端口22&#xff08;通常是SSH服务的端口&#xff09;&#xff0c;您可以使用iptables防火墙来实现。以下是一个基本的示例&#xff0c;展示了如何设置端口22的IP白名单&#x…

kafka-Stream详解篇(附案例)

文章目录 Kafka Stream 概述Kafka Stream 概念Kafka Stream 数据结构入门案例一需求描述与分析配置KafkaStream定义处理流程声明Topic接收处理结果发送消息测试 入门案例二需求描述与分析定义处理流程接收处理结果声明Topic 更多相关内容可查看 Kafka Stream 概述 Kafka Strea…

探索Anaconda Cloud:Conda的云端宝库

探索Anaconda Cloud&#xff1a;Conda的云端宝库 引言 Anaconda Cloud是一个托管服务&#xff0c;由Anaconda, Inc.提供&#xff0c;用于分享和发现公共或私有的Conda包。它为数据科学和机器学习社区提供了一个集中的平台&#xff0c;使得用户可以轻松地上传和下载Conda环境、…

深入理解linux shell 中的exec内置命令ubuntu bash

概览 每当我们在Bash shell 中运行任何命令时&#xff0c;默认情况下都会创建一个子 shell&#xff0c;并生成&#xff08;分叉&#xff09;一个新的子进程来执行该命令。但是&#xff0c;当使用 exec时&#xff0c;exec 后面的命令将替换当前 shell。这意味着不会创建任何子 …

Graalvm配置文件与Feature和Substitute机制介绍

1. 配置文件 1.1 动态代码配置文件 对于动态代码&#xff0c;需要通过指定的json文件来描述其metadata&#xff0c;这样GraalVM才能正确的编译和优化代码。如下类型 反射&#xff0c;配置文件名&#xff1a;reflect-config.json动态代理&#xff0c; 配置文件名&#xff1a;…

【高中数学之基本不等式】已知:x,y皆为正实数且x+3y=5xy,求3x+4y的最小值?

解&#xff1a;此题若使用“化二为一”法&#xff0c;会发现分母中出现了5x-3或是5y-1这样的式子&#xff0c;它可能导致负数的出现&#xff0c;已经违反了基本不等式中a,b皆大于零的应用条件。 此时应该迷途知返&#xff0c;及时易辙改弦。 此题适用“乘一法”&#xff0c;这…

MyBatis(12)MyBatis 映射文件中的 resultMap

MyBatis 的 resultMap 是一种高级映射策略&#xff0c;用于处理复杂的SQL查询结果和Java对象之间的映射关系。resultMap 提供了比 auto-mapping 更为灵活的映射方式&#xff0c;它允许开发者显式指定数据库列和Java对象属性之间的映射关系&#xff0c;甚至可以处理复杂的数据结…

【C++11 之单例模式线程安全原理+案例】及旧版本互斥锁线程安全案例

在C11及之后的版本中&#xff0c;当函数返回局部静态变量时&#xff0c;该变量的初始化是线程安全的。 浅层原理 这是因为C11标准引入了“魔术静态局部变量”&#xff08;Magic Static Locals&#xff09;的概念&#xff0c;它确保了在多线程环境中&#xff0c;局部静态变量的…

第1章_搭建开发环境

文章目录 第1章 搭建开发环境1.1开发套件硬件接口资源介绍1.2资料下载1.3安装Keil MDK1.3.1**软件下载**1.3.2**软件安装**1.3.3 PACK 安装 1.4 安装 STM32CubeMX1.5 安装 STM32CubeProgrammer1.6 安装 ST-Link 驱动1.7 安装 CH340 驱动 第1章 搭建开发环境 1.1开发套件硬件接…

Dijkstra算法C代码

一个带权图n个点m条边&#xff0c;求起点到终点的最短距离 先定义一个邻接矩阵graph&#xff0c;graph[i][j]表示从i到j的距离&#xff0c;i到j没有路就表示为无穷 然后定义一个visit数组&#xff0c;visit[i]表示i结点是否被访问 然后定义一个dist数组&#xff0c;dist[i]表…

Redis基础教程(一):redis配置

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

星光云720全景VR系统源码

星光云720全景VR系统源码 系统体验地址项目介绍JDK版本后端主要依赖前端框架前端node 版本用户端框架介绍技术选型依赖全景内容简介系统图片部分功能截图系统体验地址 系统体验地址 VR全景系统体验地址 账号&#xff1a;18175760278 密码&#xff1a;12345678 项目介绍 JDK版…

AudioLM: 音频生成模型

AudioLM: 音频生成模型 音频生成模型是一种利用人工智能技术生成声音或音频内容的模型。它利用深度学习技术,尤其是生成对抗网络(GANs)或变分自编码器(VAEs),结合声音合成和信号处理技术,从输入的文本、图像或其他形式的数据中生成音频。这些模型广泛应用于语音助手、游…

图鸟模板-官网:基于Vue 3的前端技术探索与实践

摘要&#xff1a; 随着Web技术的不断发展&#xff0c;前端开发已经从简单的页面展示向功能丰富、交互体验优良的方向发展。Vue.js作为一款轻量级且功能强大的前端框架&#xff0c;自推出以来就受到了广泛的关注和应用。特别是Vue 3的发布&#xff0c;更是为前端开发带来了诸多新…

机器学习笔记 人脸识别技术全面回顾和小结(1)

一、简述 人脸识别是视觉模式识别的一个细分问题。人类一直在识别视觉模式&#xff0c;我们通过眼睛获得视觉信息。这些信息被大脑识别为有意义的概念。对于计算机来说&#xff0c;无论是图片还是视频&#xff0c;它都是许多像素的矩阵。机器应该找出数据的某一部分在数据中代表…

最近公共祖先(倍增,tarjan,树链剖分)

两个点的最近公共祖先&#xff0c;即两个点的所有公共祖先中&#xff0c;离根节点最远的一个节点。 倍增算法 1.dfs一遍&#xff0c;创建ST表 2.利用ST表求LCA 内容来源 D09 倍增算法 P3379【模板】最近公共祖先&#xff08;LCA&#xff09; #include<iostream> #in…

特斯拉下一代自动驾驶芯片的深度预测

引言 特斯拉一直以来都在自动驾驶技术上不断突破&#xff0c;随着AI大模型技术的爆发&#xff0c;其下一代自动驾驶芯片&#xff08;HW5.0&#xff09;也备受瞩目。本文将深入分析和预测特斯拉下一代自动驾驶芯片AI5的技术特点及其对行业的影响。 深入技术分析 现有自动驾驶…

MySQL8.0新特性~General tablespaces

通用表空间创建语法 InnoDB and NDB:[ADD DATAFILE file_name][AUTOEXTEND_SIZE [] value]InnoDB only:[FILE_BLOCK_SIZE value][ENCRYPTION [] {Y | N}]NDB only:USE LOGFILE GROUP logfile_group[EXTENT_SIZE [] extent_size][INITIAL_SIZE [] initial_size][MAX_SIZE [] ma…

React小记(五)_Hooks入门到进阶

React 16.8 版本 类组件 和 函数组件 两种组件共存&#xff0c;到目前 React 18 版本&#xff0c;官方已经不在推荐使用类组件&#xff0c;在函数组件中 hooks 是必不可少的&#xff0c;它允许我们函数组件像类组件一样可以使用组件的状态&#xff0c;并模拟组件的生命周期等一…