type
status
date
slug
summary
category
tags
icon
NotionNext 添加了新的评论系统 —— valine 和 waline (With backend Valine). 使用 valine 可以搭配 valine-admin 管理评论。而 waline 是 valine 的升级版,配置更简便,建议直接 waline 一步到位了!NotionNext 配置 Waline 官方教程 , Waline 项目地址 。
我尝试了 Railway 部署和 Vercel 部署两种方式(之前用Railway作为Cusdis的评论数据库,注册了账号)。部署完成后,得到评论服务的 链接 即为 NotionNext 需要的配置参数
NEXT_PUBLIC_WALINE_SERVER_URL
。三种方法:Railway 部署简便,但存在在线时长限制;Vercel + LeanCloud 部署数据库空间容量大(远超所需),但在 LeanCloud 注册部分较复杂,但可能存在跨域问题;Vercel + PostgreSQL 部署较 LeanCloud 简单,但可能存在跨域问题。
基本部署
Railway 部署
Railway 搭建更方便,因为内置 PostgreSQL 数据库,不需要另外配置数据库,无需注册LeanCloud。 Railway 支持 Github 登录。
注:目前 Railway 免费用户可能存在每月 500H 运行时长限制(月初重置),部署项目可能存在服务中断。(20230202) 推荐阅读: postgresql 数据库迁移
基础配置步骤
- 点击 [Deploy on Railway],跳转至 Railway 平台快速部署。登录之后会让你选择新建仓库的名称,环境变量部分不需要改动,直接点击下方的
Deploy
按钮进行部署即可。

- 进入管理界面后,选择
PostgreSQL
→Query
,将 waline.pgsql 中的内容粘贴至输入框中,点击底部的Run Query
按钮完成数据库的初始化。
waline.pgsql 初始化数据库代码
- 最后在
Settings
→Domains
中就可以获取到访问的地址了。在此处可以可以设置博客二级域名指向该服务,得到NotionNext所需的评论服务链接。

- 在NotionNext中添加
NEXT_PUBLIC_WALINE_SERVER_URL
环境变量。
进阶设置
- 在红框选项下,设置服务的环境变量。

Vercel + LeanCloud 部署
Vercel 部署使用 LeanCloud 数据库服务,需要设置三个数据库相关的配置参数。
基础配置步骤
- 注册LeanCloud 国际版账号,创建应用,在
设置
→应用凭证
中获得:
AppID
+ AppKey
+ MasterKey
- 点击 [Depoly] (By tangly1024),跳转至 Vercel 进行 Server 端部署。
- 此处推荐使用 NotionNext 开发者 tangly1024 配置的[Depoly]一键部署waline(调整了跨域访问的问题)
- waline 官方 [Deploy] (仅供参考)

- 在
Settings
→Environmrnt Variables
设置数据库相关环境变量:
在环境变量(Environment Variables)中配置
LEAN_ID
、LEAN_KEY
和 LEAN_MASTER_KEY
三个环境变量。它们的值分别对应在 LeanCloud 中获得的 AppID
、AppKey
和 MasterKey
。NAME | VALUE |
LEAN_ID | ${ AppID } |
LEAN_KEY | ${ AppKey } |
LEAN_MASTER_KEY | ${ MasterKey } |

Deployments
→Redeploy
,让修改的环境变量生效。

- 在
Settings
→Domains
下,可以将二级域名指向该 vercel 服务,得到NotionNext所需的评论服务链接。 【教程:Vercel应用绑定自己的域名】

- 在NotionNext中添加
NEXT_PUBLIC_WALINE_SERVER_URL
环境变量。
进阶设置
- 设置环境变量与基础配置中操作相同。
Vercel + PostgreSQL 部署
步骤与
Vercel + LeanCloud 部署
基本一致,区别仅在于使用不同数据库,更具体操作可结合上一小节。- 在 bit.io 新建 PostgreSQL 数据库(提供 3G 免费数据库);
- 初始化数据库: Data → Query 填入以下代码
waline.pgsql 初始化数据库代码 [*]

- 在 Connect 中(见上图)获取数据库连接参数:
PG_DB
,PG_USER
,PG_PASSWORD
,PG_HOST
(替换 LeanCloud 数据库的环境变量),即可部署。
环境变量名称 | 必填 | 默认值 | 备注 |
PG_DB | ✅ | ㅤ | PostgreSQL 数据库库名 |
PG_USER | ✅ | ㅤ | PostgreSQL 数据库的用户名 |
PG_PASSWORD | ✅ | ㅤ | PostgreSQL 数据库的密码 |
PG_HOST | ㅤ | 127.0.0.1 | PostgreSQL 服务的地址 |
PG_PORT | ㅤ | 3211 | PostgreSQL 服务的端口 |
PG_PREFIX | ㅤ | wl_ | PostgreSQL 数据表的表前缀 |
PG_SSL | ㅤ | false | 是否使用 SSL 连接 PostgreSQL 数据库 |
- 点击 [Depoly] (By tangly1024),跳转至 Vercel 进行 Server 端部署。
- 此处推荐使用 NotionNext 开发者 tangly1024 配置的[Depoly]一键部署waline(调整了跨域访问的问题)
- waline 官方 [Deploy] (仅供参考)
- 在
Settings
→Domains
下,可以将二级域名指向该 vercel 服务,得到NotionNext所需的评论服务链接。 【教程:Vercel应用绑定自己的域名】
- 在NotionNext中添加
NEXT_PUBLIC_WALINE_SERVER_URL
环境变量。
设置管理员账户
登录
<serverURL>/ui/register
进行注册,第一个注册的账户会被设定成管理员。进阶设置 - 配置 SMTP 服务
配置SMTP可以允许waline给用户提供邮件服务:提醒网站新增评论,给新注册用户发验证码,提供忘记密码重置邮件链接等。Railway 部署增加环境变量会自动刷新,而 vercel 部署增加环境变量后,记得手动 Redeploy(见 Vercel 基础配置步骤)。
增加环境变量
上述部署方式进阶设置均为在服务中增加环境变量,添加以下新的环境变量(✅为必要设置):
- ✅
AUTHOR_EMAIL
:博主邮箱,用来区分发布的评论是否是博主本身发布的。如果是博主发布的则不进行提醒通知。
- ✅
SMTP_SERVICE
:SMTP 邮件发送服务提供商,可以在这个页面查看所有支持的运营商。如果没在列表中的可以自行配置SMTP_HOST
和SMTP_PORT
。
- ✅
SMTP_HOST
:SMTP 服务器地址,如果未配置SMTP_SERVICE
的话该项必填。
- ✅
SMTP_PORT
:SMTP 服务器端口,如果未配置SMTP_SERVICE
的话该项必填。
- ✅
SMTP_USER
:SMTP 邮件发送服务的用户名,一般为登录邮箱。
- ✅
SMTP_PASS
:SMTP 邮件发送服务的密码,一般为邮箱登录密码,部分邮箱(例如 163 邮箱)是单独的 SMTP 密码。
- ✅
SITE_NAME
:网站名称,用于在消息中显示。
- ✅
SITE_URL
:网站地址,用于在消息中显示。
SENDER_NAME
:自定义发送邮件的发件人,选填。
SENDER_EMAIL
:自定义发送邮件的发件地址,选填。
MAIL_SUBJECT
:评论回复邮件标题自定义,选填。
MAIL_TEMPLATE
:评论回复邮件内容自定义,选填。
MAIL_SUBJECT_ADMIN
:新评论通知邮件标题自定义,选填。
MAIL_TEMPLATE_ADMIN
:新评论通知邮件内容自定义,选填。
yandex.com 配置模板
yandex.com 免费注册,提供功能较为全面的服务。yandex mail 还提供免费的域名邮箱服务-Yandex Connect,免费提供 1000 个子邮箱,每个子邮箱 10G 容量。
NAME | VALUE | 备注 |
AUTHOR_EMAIL | aaa@bbb.com | 博主邮箱,用来区分发布的评论是否是博主本身发布的。如果是博主发布的则不进行提醒通知。 |
SMTP_HOST | smtp.yandex.com | SMTP 服务器地址 |
SMTP_PORT | 465 | SMTP 服务器端口 |
SMTP_USER | xxx@yandex.com | SMTP 邮件发送服务的用户名,为登录邮箱 |
SMTP_PASS | abcd…dcx | yandex.com 提供的 APP 密码 |
SITE_NAME | D_SUPER | 网站名称,用于在消息中显示 |
SITE_URL | https://dsuper.xyz | 网站地址,用于在消息中显示 |
Waline 个性化设置
设置用户等级
在部署的环境变量中添加
LEVELS
关键词,设置值为 0,10,20,50,100,200
,表示:等级 | 条件 | 默认等级标签 |
0 | 0 <= count < 10 | 潜水 |
1 | 10 <= count < 20 | 冒泡 |
2 | 20 <= count < 50 | 吐槽 |
3 | 50 <= count < 100 | 活跃 |
4 | 100 <= count < 200 | 话痨 |
5 | 200 <= count | 传说 |
除了可以自定义等级判断规则之外,我们还可以在客户端自定义等级标签。
默认只提供了 6 级文案,但并不表示只能有 6 个级别。具体的等级上限是根据你设置的等级判断规则来的。增加新的等级建议自己配置上等级对应的文案,没有提供文案的话默认展示的就是
Level 10
这样的默认文案。NotionNext 的实现我估计是修改: walinecomponents.js 但是没验证。[参考]
Waline 的更新
Railway 部署更新

Vercel 部署更新
在 vercel Redepoly
将 https://github.com/walinejs/waline/tree/main/example 新代码 push 到自己的 Github 库
vercel-waline
.(可能并不需要😝)其他问题
Vercel 部署 最新评论持续 Loading…
根据我个人的调试过程总结,下述步骤仅供参考。
- 如果使用waline官方的 Depoly 方式,其 Github 文件 vercel.json 需按照 修改为:walinetangly1024 • Updated Apr 10, 2023
- 检查在 Vercel 中,是否将
waline.你的博客.com
二级域名指向搭建的 waline 服务。
- 在 NotionNext 中,更新
NPUBLIC_WALINE_SERVER_URL
为https://waline.你的博客.com
形式。
LeanCloud 国际版20220719政策变化对 Waline 的影响
结论是:不影响 vercel 部署访问 LeanCloud 的 Waline 创建方式。
邮件原文
回复
LeanCloud 国际版 IP 限制的这个事情,对 Waline 没有影像哈,Waline 是用 Vercel 访问的 LeanCloud,Vercel 是国外 IP 所以不受影响。 — By lizheming
关于 Railway 部署评论时间不一致的问题
可能的解决方法:https://github.com/walinejs/waline/discussions/1177 感谢 @junhuame 等.
(改) waline.pgsql,用于初始化数据库
推荐阅读
- NotionNext 开发者博客:https://tangly1024.com/article/notionnext-valine
- tangly1024/waline - Github: https://github.com/tangly1024/waline
- Railway 部署: https://waline.js.org/guide/deploy/railway.html
- 快速上手-Vercel 部署: https://waline.js.org/guide/get-started/#vercel-部署-服务端
- Waline 评论系统的介绍与基础配置: https://guanqr.com/tech/website/introduction-and-basic-setting-of-waline/
- 8月1日起,LeanCloud国际版共享域名…: https://github.com/walinejs/waline/discussions/1203
- Waline 显示配置: https://waline.js.org/reference/server/env.html#显示
- Waline locale 选项: https://waline.js.org/cookbook/customize/locale.html#locale-选项
- Waline 多数据库服务支持: https://waline.js.org/guide/database.html#postgresql
- NotionNext/Components (感谢 NotionNext 交流群 @ethereal619)