Waline

category
tags
type
status
slug
date
password
Last edited time
Jan 31, 2024 08:15 AM
summary
icon

1. 注册LeanCloud

Valine和Waline两个插件均要借助LeanCloud提供的云函数,云数据存储等功能,对于普通开发者来说免费版已经足够使用。
😀
若您使用的是Zeabur的部署方案,则不需要额外注册一个LeanCloud。

获取APP ID 和 APP Key

1.请先登录注册 LeanCloud, 进入控制台后点击左下角创建应用
notion image
2.进入刚刚创建的应用,选择左下角的设置>应用Key,查看你的APP IDAPP Key
notion image

2.Waline部署方式

部署Waline方式1: Vercel
这种方案我目前遇到了点问题(详见下文部署踩坑部分),问题原因是官方代码不支持跨域,问题暂未解决。
Vercel踩坑说明 (点击展开)
我不确定是否你也会遇到相同的问题:
用vercel部署的评论插件,在电脑端进行评论时会提示“网络请求错误,由于CORS跨域错误,不允许请求waline服务” 。查看Vercedl后台日志则显示“响应超时”;同时,在手机端评论也提示错误“ Failed to fetch”。
产生的原因有两种
  1. URL配置错误,https://waline.tangly1024.com 结尾不能有斜杆。
  1. Vercel域名服务商的问题导致触发了跨域限制。
notion image
2. 配置环境变量 (点击展开)
  • 进入环境变量配置页面
    • 在Vercel后台刚部署好的Waline项目中,找到 Settings →  Environment Variables
      notion image
  • 配置三个环境变量 LEAN_IDLEAN_KEY , LEAN_MASTER_KEY 。(它们的值分别对应上一步在 LeanCloud 中获得的 APP IDAPP KEYMaster Key。),配置变量如下图:
    • notion image
      💡
      注意: 如果你使用 LeanCloud 国内版,请额外配置 LEAN_SERVER 环境变量,值为你绑定好的域名。否则可能会提示错误:”serverURL option is required for apps from CN region“,详见此ISSUE
  • 最后要redeploy这个项目使配置生效。
    • notion image
3. 找到你的waline访问地址
在Vercel中找到访问Overview,可以通过Visit、或者DOMAINS下的域名访问到你的Waline服务,(当然你也可以选择自己进行域名映射)。如果有问题参阅官方文档
notion image
部署Waline方式2: DETA
当你的Vercel服务有异常可以尝试此部署替代方案。
  • 2.配置相关环境变量信息,点击Deploy按钮进行部署。
    • notion image
  • 3. 部署后在后台如图右上角获取你的访问地址,将其配置到NotionNext中
    • notion image
 
部署Waline方式3: Railway
此方式方式请参考博主D_super的这篇文章配置《NotionNext博客Waline评论系统》,文章步骤非常详尽👍
其它更多部署方式
按照官方文档,有 Vercel、Docker、Deta、CloudBase、Railway、百度云函数、阿里云函数等多种部署方式。以下我将介绍Vercel和Deta两种部署,其他的可以参阅官方文档:

部署完成

Waline本身是一个独立的评论页面,可以嵌入到任何网页中,例如我部署好的waline服务,映射为二级域名后地址如下:https://waline.tangly1024.com
 

Waline其他自定义配置

waline支持大量的自定义配置,请参考官方文档的说明:
服务端环境变量
你可以通过下面的环境变量对 Waline 服务端进行配置。 注意 环境变量在更新后必须 重新部署 才能生效。 Vercel 需要在 Settings - Environment Variables 中进行设置。 等级标签 根据设置的等级条件以及用户的评论数,会为评论者增加等级标签。该功能默认关闭,可以通过配置环境变量 LEVELS 开启该功能。配置的形式为一串给定的数的逗号拼接,例如 0,10,20,50,100,200 表示的就是: 除了可以自定义等级判断规则之外,我们还可以在客户端自定义等级标签,详见 等级标签 。 默认只提供了 6 级文案,但并不表示只能有 6 个级别。具体的等级上限是根据你设置的等级判断规则来的。增加新的等级建议自己配置上等级对应的文案,没有提供文案的话默认展示的就是 Level 10 这样的默认文案。 用户注册和评论的邮件通知都会用到邮件服务。配置邮件服务相关变量后,用户注册会增加邮箱验证码确认相关的操作,用来防止恶意的注册。 提示 可以在 查看支持的服务商。 SMTP_SERVICE 和 ( SMTP_HOST、 SMTP_PORT) 任选其一即可,如果没有在列表中知道对应的 SMTP_SERVICE 的话则需要配 SMTP_HOST 和 SMTP_PORT ,它们一般可以在邮箱的设置中找到。 SMTP 的用户名通常均支持用户的完整邮箱,而密码大多同邮箱密码。 请特别注意部分邮箱 (如 163、qq 邮箱) 使用单独的 SMTP 密码。
服务端环境变量
 
  • 垃圾评论过滤
    • Valine和Waline都用到akismet的垃圾评论过滤功能。在官网https://akismet.com注册账号可以获取免费的key,
      Valine需要在LeanCloud中配置AKISMET_KEY变量,而Waline则是在服务的后台配置环境变量。
      notion image
 
  • 邮件通知
    • 推荐搭配使用 Valine-Admin 几分钟就可以部署管理后台,从而支持Valine和Waline的邮件通知,部署配置方式不在此文赘述,可以请参阅 官方文档中的“云引擎一键部署”部分.
      💡
      Waline的网络请求稳定性不如Valine,而且Valine-Admin支持在LeanCloud后台中查看详细的邮件发送记录,比较便于调试和排查问题
  • LeanCloud后台查看邮件发送状态如下图(如果邮件发送失败也可以在这里定位错误):
    • notion image

3.NotionNext中配置Waline

NotionNext(版本需要≥3.3.9)中开启Waline:在Vercel环境变量中添加 一个环境变量:
字段名
说明
是否必填
NEXT_PUBLIC_WALINE_SERVER_URL
你的waline访问地址
waline访问地址 来自你上一步中部署好的Waline页面,他是一个独立的评论页面。
配置好上述变量后,重新部署即可。
ValineMailchimp
  • Twikoo
  • Giscus
  • Cusdis