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

本文发布于 2025年05月16日,阅读 6 次,点赞 0 次,归类于 教程
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

tutorial-1-1

首先登录 Github,点击右上角账号打开Settings,然后点击Developer settings-OAuth Apps,新建一个 OAuth App。

tutorial-1-2

按照上图所示进行填写就好了,然后点击注册应用。记住Client IDClient secretsClient secrets只会出现一次一定要记住,否则就只能重新生成了。

tutorial-1-3

把上面的Client IDClient secrets在 artalk 中进行配置下就可以通过 github 进行登录评论了。

邮件通知

如果你想评论有回复时,可以进行邮件通知。需要启用邮件通知并进行配置。

SMTP 发送

我这里配置的是网易云邮箱,如果想配置 qq 邮箱,需要将发件地址改成smtp.qq.com,发件端口改成465.

tutorial-1-4

注意:这里的密码是授权密码而不是登录密码。

常见问题

  1. 部署 artalk 后登录后台没有账号密码

    如果是使用 docker 或者 docker compose 部署的,可以执行命令docker exec -it artalk artalk admin来创建管理员账号密码。

  2. 跨域问题

    比如我的网站是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/;
        }
    
    }
    
本篇完