后端配置
ArtalkGo 默认读取当前目录下的 artalk-go.yml
作为配置文件,你可以使用参数 -c
来指定:
artalk-go -c ./conf.yml
官方建议的配置文件格式为 YAML,但你也可以 -c
指定使用其他格式,例如 .toml
、.json
等。
获取模版配置文件
可参考一份「完整的配置文件」:artalk-go.example.yml
使用 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”。
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
。