Artalk 评论系统部署配置和避坑指南

Artalk 配置 Github 登录、邮件通知的教程。常见问题:部署 artalk 后登录后台没有账号密码,CORS 和 CSP 错误的解决方案。
by emanjusaka from https://www.emanjusaka.com/archives/artalk-configure-faqs 彼岸花开可奈何
本文为原创文章,可能会更新教程以及修正文中的一些错误,全文转载请保留原文地址,避免产生因未即时修正导致的误导。
博客:https://www.emanjusaka.com
博客园:https://www.cnblogs.com/emanjusaka
公众号:emanjusaka的编程栈
这里只是给出了一些我用到的配置和遇到的问题,还有很多配置我目前没有用到,待之后再进行补充。这里记录下如果有相同需求的可以进行一个参考。
社交登录配置
github
首先登录 Github,点击右上角账号打开Settings
,然后点击Developer settings
-OAuth Apps
,新建一个 OAuth App。
按照上图所示进行填写就好了,然后点击注册应用。记住Client ID
和 Client secrets
,Client secrets
只会出现一次一定要记住,否则就只能重新生成了。
把上面的Client ID
和 Client secrets
在 artalk 中进行配置下就可以通过 github 进行登录评论了。
邮件通知
如果你想评论有回复时,可以进行邮件通知。需要启用邮件通知并进行配置。
SMTP 发送
我这里配置的是网易云邮箱,如果想配置 qq 邮箱,需要将发件地址改成smtp.qq.com
,发件端口改成465
.
注意:这里的密码是授权密码而不是登录密码。
常见问题
-
部署 artalk 后登录后台没有账号密码
如果是使用 docker 或者 docker compose 部署的,可以执行命令
docker exec -it artalk artalk admin
来创建管理员账号密码。 -
跨域问题
比如我的网站是
https://www.emanjusaka.com
,而我部署的 artalk 的地址是https://artalk.emanjusaka.com
。这种情况下就会产生跨域问题,需要在反向代理中处理下跨域。下面给出一个 Nginx 的配置:server{ listen 443 ssl http2; server_name artalk.emanjusaka.com; #... add_header Access-Control-Allow-Origin 'https://www.emanjusaka.com'; add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; if ($request_method = 'OPTIONS') { return 204; } add_header Content-Security-Policy 'frame-ancestors www.emanjusaka.com'; location / { #... proxy_hide_header 'Access-Control-Allow-Origin'; proxy_hide_header 'Content-Security-Policy'; proxy_pass http://127.0.0.1:3366/; } }