💬 使用 Commento 为 Hexo 博客添加自托管评论系统(完整教程)

本文将介绍如何使用 Docker Compose 部署 Commento 评论系统,并将其集成到 Hexo 静态博客中,实现可控、轻量、无追踪的评论功能。


📌 目录

  1. Commento 简介
  2. 为什么选择 Commento
  3. 系统架构
  4. 部署环境准备
  5. Docker Compose 部署 Commento + PostgreSQL + Caddy
  6. 配置域名和 HTTPS
  7. Hexo 集成 Commento
  8. 评论后台管理
  9. 常见问题与建议
  10. 总结

Commento 简介

Commento 是一个开源的嵌入式评论系统,可用于替代如 Disqus 等第三方服务。支持 Markdown、隐私保护、反垃圾、多站点等特性。你可以选择自托管的方式完全控制数据。


为什么选择 Commento

特性支持描述
开源✅自由修改部署
自托管✅控制全部数据
无广告✅注重隐私,无第三方追踪
支持 Markdown✅格式美观、方便书写
支持审核管理✅后台可屏蔽、删除、审批
邮件通知✅可配置 SMTP 发送通知
多站点支持✅一套服务,多站共用

系统架构

组件功能
Commento评论服务核心,运行在端口 8080
PostgreSQL存储评论数据
Caddy反向代理并自动配置 HTTPS
Hexo生成静态页面的博客系统

部署环境准备

  1. 一台云服务器(Ubuntu 20.04 或以上)
  2. 域名一枚(如 comments.example.com)并完成解析
  3. 安装 Docker 和 Docker Compose:
1
2
sudo apt update
sudo apt install docker docker-compose -y

Docker Compose 部署 Commento + PostgreSQL + Caddy

1️⃣ 创建 docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

version: '3.8'

services:
postgres:
image: postgres:13
container_name: commento-postgres
restart: always
environment:
POSTGRES_USER: commento
POSTGRES_PASSWORD: strong_password_here
POSTGRES_DB: commento
volumes:
- pgdata:/var/lib/postgresql/data

commento:
image: registry.gitlab.com/commento/commento
container_name: commento
restart: always
environment:
COMMENTO_ORIGIN: "https://comments.example.com"
COMMENTO_PORT: 8080
COMMENTO_POSTGRES: "postgres://commento:strong_password_here@postgres:5432/commento?sslmode=disable"
depends_on:
- postgres

caddy:
image: caddy:2
container_name: commento-caddy
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config

volumes:
pgdata:
caddy_data:
caddy_config:

2️⃣ 创建 Caddyfile

1
2
3
4
5
6
7
8
9
10
11
comments.example.com {
reverse_proxy commento:8080

encode gzip
header {
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
X-Content-Type-Options "nosniff"
X-Frame-Options "DENY"
X-XSS-Protection "1; mode=block"
}
}

3️⃣ 启动服务

1
docker compose up -d

配置域名和 HTTPS

将 comments.example.com 指向你的服务器 IP(A 记录)

确保服务器开放 80 和 443 端口:

1
2
3
sudo ufw allow 80
sudo ufw allow 443
Caddy 会自动申请并续签 HTTPS 证书

Hexo 集成 Commento

在你的 Hexo 博客主题中找到 layout/post.ejs 或 post.html,在页面底部插入:

1
2
<div id="commento"></div>
<script defer src="https://comments.example.com/js/commento.js"></script>

然后执行生成部署:

1
hexo clean && hexo g && hexo d

评论后台管理

访问你的 Commento 服务首页:
https://comments.example.com

  • 注册账号
  • 登录后创建站点(填写你博客的域名)
  • 管理功能:
    • 评论审核与删除
    • 用户封禁
    • 多站点切换
    • SMTP 通知配置(可选)

常见问题与建议

问题解决方案
域名访问不了检查 DNS、端口、防火墙配置
评论不显示检查域名与 COMMENTO_ORIGIN 是否一致
邮件通知失败配置 SMTP,确保端口和账号正确
页面加载太慢使用 CDN 加速博客主站,不影响评论

总结

项目技术
评论系统Commento(自托管)
部署方式Docker Compose
评论数据存储PostgreSQL
反向代理与HTTPS Caddy 自动化配置
博客平台Hexo(静态)
嵌入方法HTML 标签与 JS 脚本

Commento 是一个优雅、注重隐私的评论解决方案,适合内容创作者、技术博客、文档站点等场景。结合 Hexo 可构建完全自控的内容平台。

本文作者:Samjoe Yang

本文链接: https://need.uno/shi-yong-commento-wei-hexo-bo-ke-tian-jia-zi-tuo-guan-ping-lun-xi-tong-wan-zheng-jiao-cheng/

评论

此博客中的热门博文

AI幻觉的本质、影响与创造性价值探讨

PHP编译安装时常见错误解决办法