867 字
4 分钟

为你的 Fuwari 添加 Artalk 评论系统

2026-01-08
浏览量 加载中...
Tip

本喂饭级教程用的是 1Panel 使用 Docker Compose 部署 Artalk 。

有一说一,1Panel 真香。

用 Fuwari 的小伙伴可以火速来前来围观,为你的博客添加 Artalk 评论系统。

ArtalkJS
/
Artalk
Waiting for api.github.com...
00K
0K
0K
Waiting...

Q :为什么选择使用 Artalk 作为我的评论系统?

来自 Artalk :

Artalk 是一款简单易用但功能丰富的评论系统,你可以开箱即用地部署并置入任何博客、网站、Web 应用。

  • 🍃 前端 ~40KB,纯天然 Vanilla JS
  • 🍱 后端 Golang,高效轻量跨平台
  • 🐳 通过 Docker 一键部署,方便快捷
  • 🌈 开源程序,自托管,隐私至上

Artalk 功能完善,轻量高效,同时还支持缓存,并且不用登录游客也能发表评论。

萌樱觉得,确实是一个很不错的评论系统。(虽然没用过别的

安装 Artalk#

  • 打开 1Panel ➡️ 容器 ➡️ 编排 ➡️ 创建编排
  • 来源:编辑,文件夹填 Artalk ,然后在下方输入 docker-compose.yml 的内容,保存即可
docker-compose.yml
version: "3.8"
services:
artalk:
container_name: artalk
image: artalk/artalk-go
restart: unless-stopped
build:
context: ./
dockerfile: Dockerfile
ports:
- 23366:23366 # 端口号可以自定义,这里映射原来的端口
volumes:
- ./data:/data
environment:
- TZ=Asia/Shanghai
- ATK_LOCALE=zh-CN
- ATK_SITE_DEFAULT=你的博客名称 # 记得改
- ATK_SITE_URL=你的博客地址 # 记得改
networks:
- 1panel-network
networks:
1panel-network:
external: true

等进度条跑完,Artalk 就安装成功了。

配置 Artalk#

安装完成后,点击操作里面的终端连接到容器内部配置管理员账户。

配置管理员账户
artalk admin

根据提示输入你的信息即可。

配置反代#

  • 网站 ➡️ 创建网站 ➡️ 选择反向代理
  • 域名:填入你的 Artalk 域名
  • 代理地址:http://127.0.0.1:23366

保存后就能访问你的 Artalk 域名进行登录操作了。

需要配置 HTTPS 的话请自行配置,这里就不在赘述了。

Warning

登录之后千万不要手滑把账号删了,不然会登录进不去,别问我是怎么知道的。( ̄へ ̄)

接入 Artalk#

特性
  • 全局/独立页面评论开关
  • 公共 CDN 加载资源
  • 适配 Fuwari 主题色
Warning

本地开发环境会出现 Artalk Error

创建 Artalk 组件#

src/components/comment/Artalk.astro
---
import { commentConfig, siteConfig } from "@/config";
interface Props {
path: string;
}
const isEnabled = commentConfig.enable;
const config = isEnabled
? {
server: commentConfig.server,
el: "#artalk",
site: siteConfig.title,
pageKey: Astro.props.path,
darkMode: "auto",
pageTitle: "",
}
: null;
---
{isEnabled && config && (
<!-- Artalk -->
<div class="relative w-full">
<!-- 挂载点 -->
<div id="artalk" style="--at-color-main: var(--primary); --at-color-bg: var(--card-bg); --at-color-border: var(--line-divider);"></div>
<!-- 引入 Artalk 样式 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/artalk/dist/Artalk.css"/>
<!-- 脚本逻辑 -->
<script type="module" is:inline define:vars={{config}}>
import Artalk from 'https://cdn.jsdelivr.net/npm/artalk/dist/Artalk.mjs';
// 初始化 Artalk
const artalk = Artalk.init(config);
// 深色模式
function updateTheme() {
const isDark = document.documentElement.classList.contains('dark');
artalk.setDarkMode(isDark);
}
updateTheme();
const observer = new MutationObserver((_mutations) => {
updateTheme();
});
observer.observe(document.documentElement, {
attributes: true,
attributeFilter: ['class'],
});
</script>
</div>
)}

修改配置文件#

src/types/config.ts
export type ExpressiveCodeConfig = {
theme: string;
};
export type CommentConfig = {
enable: boolean;
server: string;
};
src/config.ts
import type {
CommentConfig,
ExpressiveCodeConfig,
LicenseConfig,
NavBarConfig,
ProfileConfig,
// 其他代码
theme: "github-dark",
};
export const commentConfig: CommentConfig = {
enable: true,
server: "https://artalk.example.com", // 填写你的 Artalk 后端地址
};

修改文章属性字段#

src/content/config.ts
tags: z.array(z.string()).optional().default([]),
category: z.string().optional().nullable().default(""),
lang: z.string().optional().default(""),
comment: z.boolean().optional().default(true),

修改布局#

src/pages/posts/[...slug].astro
---
import path from "node:path";
import Artalk from "@components/comment/Artalk.astro";
import License from "@components/misc/License.astro";
import Markdown from "@components/misc/Markdown.astro";
import I18nKey from "@i18n/i18nKey";
import { i18n } from "@i18n/translation";
// 其他代码
</div>}
</a>
</div>
<!-- 评论区 -->
{entry.data.comment && <Artalk path={getPostUrlBySlug(entry.slug)} />}
</MainGridLayout>

至此,打包发布你的博客就呢在文章中看到评论区啦!🎉

食用方法#

如果需要全局关闭评论,把 commentConfig.enable 改为 false

如果只是某篇文章或者页面单独关闭评论,那么在文章属性字段中添加 comment: false 即可。

最后,希望大家食用愉快~

为你的 Fuwari 添加 Artalk 评论系统
https://bytemoe.com/posts/fuwari-add-artalk-comment-system/
作者
MoeSakuraW
发布于
2026-01-08
许可协议
CC BY-NC-SA 4.0

评论区

目录