后端配置

ArtalkGo 默认读取当前目录下的 artalk-go.yml 作为配置文件,你可以使用参数 -c 来指定:

artalk-go -c ./conf.yml

官方建议的配置文件格式为 YAMLopen in new window,但你也可以 -c 指定使用其他格式,例如 .toml.json 等。

获取模版配置文件

可参考一份「完整的配置文件」:artalk-go.example.ymlopen in new window

使用 gen 命令生成配置文件

ArtalkGo 提供 gen 命令,你可以快速生成一份新的配置文件:

artalk-go gen artalk-go.example.yml ./artalk-go.yml

使用 curl 下载配置文件

curl -L https://raw.githubusercontent.com/ArtalkJS/ArtalkGo/master/artalk-go.example.yml > conf.yml

app_key 加密密钥

在 ArtalkGo 启动之前,你需要配置一个 app_key 用于对网站内容进行安全加密:

app_key: "<任意的字符>"

db 数据库

ArtalkGo 支持连接多种数据库,支持 SQLite、MySQL、PostgreSQL、SQL Server 配置如下:

SQLite

SQLite 是轻型数据库,使用单个文件存储数据,无需额外运行程序,尤其适合小型站点,例如个人博客。

db:
  type: "sqlite"
  file: "./data/artalk-go.db"

MySQL / PostgreSQL / SQL Server

修改 type 为你的数据库类型:

db:
  type: "mysql"      # sqlite, mysql, pgsql, mssql
  name: "artalk"     # 数据库名
  host: "localhost"  # 地址
  port: "3306"       # 端口
  user: "root"       # 账号
  password: ""       # 密码
  charset: "utf8mb4" # 编码格式
  table_prefix: ""   # 表前缀 (例如:"atk_")

数据表将在 ArtalkGo 启动时自动完成创建,无需额外操作。

admin_users 管理员账户

你需要配置管理员账户,这样才能通过「控制中心」对站点内容进行管理。

ArtalkGo 支持多站点,你可以创建多个管理员账户,为其分配站点,让你的朋友们共用同一个后端程序。

详情参考:“管理员 × 多站点”

trusted_domains 可信域名

trusted_domains:
  - "https://artalk.你的域名:23366"
  - "https://前端使用域名.com"

配置该项能限制来自列表外的 Referer 和跨域请求。

提示

你需要将「后端程序地址」和「使用该后端的前端」地址,两者同时加入可信域名列表中。

在侧边栏控制中心「站点」选项卡 - 选择站点「修改 URL」,填入站点 URL 也具有相同的效果,注:多个 URL 用 , 英文逗号分隔。

如果你觉得比较繁琐,或打算在反代模式下使用 Nginx 控制 Header 头部信息,可以将其关闭,设置为:

trusted_domains:
  - "*"

site_default 默认站点

如果你觉得大概是不会用到 Artalk 的多站点功能,可以直接将该项配置为你的站点名,例如:

site_default: "Artalk 官网"

然后在前端直接使用这个站点名:

new Artalk({ site: "Artalk 官网" })

这样,你就无需在侧边栏的控制中心新建站点,系统会帮你自动创建。

frontend 在后端配置前端

增加 frontend 字段内容可以在后端配置前端,详情可参考:“在后端控制前端”

email 邮件通知

配置邮件通知,让评论消息通过邮件方式发送到目标用户,你可以自定义邮件发送者名词,邮件模版等。

详情参考:“后端 · 邮件通知”

admin_notify 多元推送

你可以配置多种消息发送方式,例如飞书、Telegram 等,当收到新的评论时通知管理员。

详情参考:“后端 · 多元推送”

moderator 评论审核

配置评论审核来自动拦截垃圾评论。

详情参考:“后端 · 评论审核”

cache 缓存

为了提高评论系统的响应速度和性能,ArtalkGo 内置一套缓存机制,并且默认开启,无需额外配置。但如果有需要,你也可以连接外部缓存服务器,支持 Redis 和 Memcache。

cache:
  type: "builtin" # 支持 redis, memcache, builtin (自带缓存)
  expires: 30     # 缓存过期时间 (单位:分钟)
  warm_up: false  # 程序启动时预热缓存
  server: ""      # 连接缓存服务器 (例如:"localhost:6379")
  • warm_up:缓存预热功能。设置为 true,在 ArtalkGo 启动时会立刻对数据库内容进行全面缓存,如果你的评论数据较多,达到上万条,启动时间可能会延长。
  • type:缓存类型。可选:redis, memcache, builtin

type 默认为 builtin,如遇特殊情况可将缓存关闭,将其设置为 disabled

注:如果在 ArtalkGo 程序外部修改数据库内容,需要刷新 ArtalkGo 缓存才能更新。

host 监听地址

HTTP 默认监听端口为 23366,你能在配置文件中指定,如下:

host: "0.0.0.0"
port: 23366

host 配置为 0.0.0.0 让 ArtalkGo 程序暴露到外网范围内可被访问,

如果你只想让 ArtalkGo 本地能够访问,可以将 host 配置为 127.0.0.1

你也可以在 ArtalkGo 服务器启动时,带上 --host--port 参数分别对地址和端口进行指定,例如:

artalk-go server --host 127.0.0.1 --port 8080

ssl 加密传输

ssl:
  enabled: true
  cert_path: ""
  key_path: ""

你可以配置该项,让 http 升级为 https,通过 SSL 协议加密传输。

  • cert_path:SSL 证书公钥文件路径。
  • key_path:SSL 证书私钥文件路径。

你也可以直接反向代理 ArtalkGo 本地服务器,然后在例如 Nginx 启用 SSL 加密。

timezone 时区

timezone: "Asia/Shanghai"

该值填写你所在地时区,对应查询 IANA 时区数据库,参考:“RFC-6557”open in new window

login_timeout 登录超时

该值设定管理员账户登录 JWT 令牌的有效期,单位:秒。例如,三天有效:

login_timeout: 259200

log 日志

打开日志后,系统错误等信息将被记录到设定的文件中。

log:
  enabled: true # 总开关
  filename: "./data/artalk-go.log" # 日志文件路径

debug 调试模式

debug 配置为 true 启用调试模式。

debug: true

参数 -w 工作目录

ArtalkGo 在不指定工作目录的情况下,会使用「启动时的目录」作为工作目录。

pwd  # 显示当前目录路径

使用参数 -w 来指定工作目录,它通常是一个「绝对路径」,例如:

artalk-go -w /root/artalk -c ./conf.yml

注:-c 的相对路径会基于 -w 的路径,ArtalkGo 此时会读取 /root/artalk/conf.yml 作为配置文件。

其次,在「配置文件中」使用的「相对路径」,也会基于「工作目录」。

例如 conf.yml 中有这样的配置:

test_file: "./data/artalk-go.log"

将读取 /root/artalk/data/artalk-go.log

提示

配置文件相关代码:/config/config.goopen in new window

前往:“前端 · 配置文件”