Skip to content

环境变量

Artalk 支持通过环境变量修改配置,这使得 Docker 等容器化云部署变得简单。

环境变量名以 ATK_ 开头,全大写,对应配置文件中的每个节点。

环境变量的优先级高于配置文件,通过以下命令验证配置是否生效:

bash
artalk config

使用 Docker Compose 部署 Artalk,可在 compose.yml 文件添加环境变量,例如:

yaml
version: '3.8'
services:
  artalk:
    container_name: artalk
    image: artalk/artalk-go
    restart: unless-stopped
    ports:
      - 8080:23366
    volumes:
      - ./data:/data
    environment:
      - TZ=Asia/Shanghai
      - ATK_LOCALE=zh-CN
      - ATK_SITE_DEFAULT=Artalk 的博客
      - ATK_SITE_URL=https://example.com
      - ATK_TRUSTED_DOMAINS=https://dev.example.com https://localhost:8080
      - ATK_ADMIN_USERS_0_NAME=admin
      - ATK_ADMIN_USERS_0_EMAIL=admin@example.org
      - ATK_ADMIN_USERS_0_PASSWORD=(bcrypt)$2y$10$ti4vZYIrxVN8rLcYXVgXCO.GJND0dyI49r7IoF3xqIx8bBRmIBZRm
      - ATK_ADMIN_USERS_0_BADGE_NAME=管理员
      - ATK_ADMIN_USERS_0_BADGE_COLOR=#0083FF

当变量为数组,通过空格分隔的字符串或数字索引来设置数组值,例如:

ATK_TRUSTED_DOMAINS="https://a.com https://b.com"
ATK_TRUSTED_DOMAINS_0="https://a.com"

通用配置

环境变量默认值描述路径
ATK_ADMIN_USERS[]管理员账户admin_users (管理员账户)
ATK_APP_KEY""加密密钥app_key (加密密钥)
ATK_DEBUGfalse调试模式debug (调试模式)
ATK_HOST"0.0.0.0"服务器地址host (服务器地址)
ATK_LOCALE"zh-CN"语言 (可选:["en", "zh-CN", "zh-TW", "ja", "fr", "ko", "ru"])locale (语言)
ATK_LOGIN_TIMEOUT259200登录有效时长 (单位:秒)login_timeout (登录有效时长)
ATK_PORT23366服务器端口port (服务器端口)
ATK_SITE_DEFAULT"默认站点"默认站点名site_default (默认站点名)
ATK_SITE_URL""默认站点地址site_url (默认站点地址)
ATK_TIMEZONE"Asia/Shanghai"时间区域timezone (时间区域)
ATK_TRUSTED_DOMAINS[]可信域名trusted_domains (可信域名)

多元推送

环境变量默认值描述路径
ATK_ADMIN_NOTIFY_BARK_ENABLEDfalse启用admin_notify.bark.enabled (多元推送 > Bark > Enabled)
ATK_ADMIN_NOTIFY_BARK_SERVER"http://day.app/xxxxxxx/"Serveradmin_notify.bark.server (多元推送 > Bark > Server)
ATK_ADMIN_NOTIFY_DING_TALK_ENABLEDfalse启用admin_notify.ding_talk.enabled (多元推送 > 钉钉 > Enabled)
ATK_ADMIN_NOTIFY_DING_TALK_SECRET""Secretadmin_notify.ding_talk.secret (多元推送 > 钉钉 > Secret)
ATK_ADMIN_NOTIFY_DING_TALK_TOKEN""Tokenadmin_notify.ding_talk.token (多元推送 > 钉钉 > Token)
ATK_ADMIN_NOTIFY_EMAIL_ENABLEDtrue开启 (当使用其他推送方式时,可以关闭管理员邮件通知)admin_notify.email.enabled (多元推送 > 邮件通知管理员 > 开启)
ATK_ADMIN_NOTIFY_EMAIL_MAIL_SUBJECT"[] 您的文章「」有新回复"邮件标题 (发送给管理员的邮件标题)admin_notify.email.mail_subject (多元推送 > 邮件通知管理员 > 邮件标题)
ATK_ADMIN_NOTIFY_EMAIL_MAIL_TPL""管理员邮件模板文件 (填入文件路径使用自定义模板)admin_notify.email.mail_tpl (多元推送 > 邮件通知管理员 > 管理员邮件模板文件)
ATK_ADMIN_NOTIFY_LARK_ENABLEDfalse启用admin_notify.lark.enabled (多元推送 > 飞书 > Enabled)
ATK_ADMIN_NOTIFY_LARK_MSG_TYPE"text"消息类型 (可选:["text", "card"])admin_notify.lark.msg_type (多元推送 > 飞书 > 消息类型)
ATK_ADMIN_NOTIFY_LARK_WEBHOOK_URL""WebhookUrladmin_notify.lark.webhook_url (多元推送 > 飞书 > WebhookUrl)
ATK_ADMIN_NOTIFY_LINE_CHANNEL_ACCESS_TOKEN""ChannelAccessTokenadmin_notify.line.channel_access_token (多元推送 > LINE > ChannelAccessToken)
ATK_ADMIN_NOTIFY_LINE_CHANNEL_SECRET""ChannelSecretadmin_notify.line.channel_secret (多元推送 > LINE > ChannelSecret)
ATK_ADMIN_NOTIFY_LINE_ENABLEDfalse启用admin_notify.line.enabled (多元推送 > LINE > Enabled)
ATK_ADMIN_NOTIFY_LINE_RECEIVERS[USER_ID_1 GROUP_ID_1]Receiversadmin_notify.line.receivers (多元推送 > LINE > Receivers)
ATK_ADMIN_NOTIFY_NOISE_MODEfalse嘈杂模式admin_notify.noise_mode (多元推送 > 嘈杂模式)
ATK_ADMIN_NOTIFY_NOTIFY_PENDINGfalse待审评论仍然发送通知 (当评论被拦截时仍然发送通知)admin_notify.notify_pending (多元推送 > 待审评论仍然发送通知)
ATK_ADMIN_NOTIFY_NOTIFY_TPL"default"通知模版 (填入文件路径使用自定义模板)admin_notify.notify_tpl (多元推送 > 通知模版)
ATK_ADMIN_NOTIFY_SLACK_ENABLEDfalse启用admin_notify.slack.enabled (多元推送 > Slack > Enabled)
ATK_ADMIN_NOTIFY_SLACK_OAUTH_TOKEN""OauthTokenadmin_notify.slack.oauth_token (多元推送 > Slack > OauthToken)
ATK_ADMIN_NOTIFY_SLACK_RECEIVERS[CHANNEL_ID]Receiversadmin_notify.slack.receivers (多元推送 > Slack > Receivers)
ATK_ADMIN_NOTIFY_TELEGRAM_API_TOKEN""ApiTokenadmin_notify.telegram.api_token (多元推送 > Telegram > ApiToken)
ATK_ADMIN_NOTIFY_TELEGRAM_ENABLEDfalse启用admin_notify.telegram.enabled (多元推送 > Telegram > Enabled)
ATK_ADMIN_NOTIFY_TELEGRAM_RECEIVERS[7777777]Receiversadmin_notify.telegram.receivers (多元推送 > Telegram > Receivers)
ATK_ADMIN_NOTIFY_WEBHOOK_ENABLEDfalse启用admin_notify.webhook.enabled (多元推送 > WebHook > Enabled)
ATK_ADMIN_NOTIFY_WEBHOOK_URL""Urladmin_notify.webhook.url (多元推送 > WebHook > Url)

社交登录

环境变量默认值描述路径
ATK_AUTH_ANONYMOUSfalse允许匿名评论 (允许跳过验证,仅填写匿名的昵称和邮箱)auth.anonymous (社交登录 > 允许匿名评论)
ATK_AUTH_APPLE_CLIENT_ID""ClientIdauth.apple.client_id (社交登录 > Apple > ClientId)
ATK_AUTH_APPLE_CLIENT_SECRET""ClientSecretauth.apple.client_secret (社交登录 > Apple > ClientSecret)
ATK_AUTH_APPLE_ENABLEDfalse启用auth.apple.enabled (社交登录 > Apple > Enabled)
ATK_AUTH_AUTH0_CLIENT_ID""ClientIdauth.auth0.client_id (社交登录 > Auth0 > ClientId)
ATK_AUTH_AUTH0_CLIENT_SECRET""ClientSecretauth.auth0.client_secret (社交登录 > Auth0 > ClientSecret)
ATK_AUTH_AUTH0_DOMAIN""Domainauth.auth0.domain (社交登录 > Auth0 > Domain)
ATK_AUTH_AUTH0_ENABLEDfalse启用auth.auth0.enabled (社交登录 > Auth0 > Enabled)
ATK_AUTH_CALLBACK"http://localhost:23366/api/v2/auth/{provider}/callback"回调地址 (https://example.com/api/v2/auth/{provider}/callback)auth.callback (社交登录 > 回调地址)
ATK_AUTH_DISCORD_CLIENT_ID""ClientIdauth.discord.client_id (社交登录 > Discord > ClientId)
ATK_AUTH_DISCORD_CLIENT_SECRET""ClientSecretauth.discord.client_secret (社交登录 > Discord > ClientSecret)
ATK_AUTH_DISCORD_ENABLEDfalse启用auth.discord.enabled (社交登录 > Discord > Enabled)
ATK_AUTH_EMAIL_ENABLEDtrue启用邮箱密码登录auth.email.enabled (社交登录 > Email > 启用邮箱密码登录)
ATK_AUTH_EMAIL_VERIFY_SUBJECT"您的验证码是 - "邮箱验证邮件标题auth.email.verify_subject (社交登录 > Email > 邮箱验证邮件标题)
ATK_AUTH_EMAIL_VERIFY_TPL"default"邮箱验证邮件模板 (填入文件路径使用自定义模板)auth.email.verify_tpl (社交登录 > Email > 邮箱验证邮件模板)
ATK_AUTH_ENABLEDfalse启用社交登录auth.enabled (社交登录 > 启用社交登录)
ATK_AUTH_FACEBOOK_CLIENT_ID""ClientIdauth.facebook.client_id (社交登录 > Facebook > ClientId)
ATK_AUTH_FACEBOOK_CLIENT_SECRET""ClientSecretauth.facebook.client_secret (社交登录 > Facebook > ClientSecret)
ATK_AUTH_FACEBOOK_ENABLEDfalse启用auth.facebook.enabled (社交登录 > Facebook > Enabled)
ATK_AUTH_GITEA_CLIENT_ID""ClientIdauth.gitea.client_id (社交登录 > Gitea > ClientId)
ATK_AUTH_GITEA_CLIENT_SECRET""ClientSecretauth.gitea.client_secret (社交登录 > Gitea > ClientSecret)
ATK_AUTH_GITEA_ENABLEDfalse启用auth.gitea.enabled (社交登录 > Gitea > Enabled)
ATK_AUTH_GITHUB_CLIENT_ID""ClientIdauth.github.client_id (社交登录 > GitHub > ClientId)
ATK_AUTH_GITHUB_CLIENT_SECRET""ClientSecretauth.github.client_secret (社交登录 > GitHub > ClientSecret)
ATK_AUTH_GITHUB_ENABLEDfalse启用auth.github.enabled (社交登录 > GitHub > Enabled)
ATK_AUTH_GITLAB_CLIENT_ID""ClientIdauth.gitlab.client_id (社交登录 > GitLab > ClientId)
ATK_AUTH_GITLAB_CLIENT_SECRET""ClientSecretauth.gitlab.client_secret (社交登录 > GitLab > ClientSecret)
ATK_AUTH_GITLAB_ENABLEDfalse启用auth.gitlab.enabled (社交登录 > GitLab > Enabled)
ATK_AUTH_GOOGLE_CLIENT_ID""ClientIdauth.google.client_id (社交登录 > Google > ClientId)
ATK_AUTH_GOOGLE_CLIENT_SECRET""ClientSecretauth.google.client_secret (社交登录 > Google > ClientSecret)
ATK_AUTH_GOOGLE_ENABLEDfalse启用auth.google.enabled (社交登录 > Google > Enabled)
ATK_AUTH_LINE_CLIENT_ID""ClientIdauth.line.client_id (社交登录 > Line > ClientId)
ATK_AUTH_LINE_CLIENT_SECRET""ClientSecretauth.line.client_secret (社交登录 > Line > ClientSecret)
ATK_AUTH_LINE_ENABLEDfalse启用auth.line.enabled (社交登录 > Line > Enabled)
ATK_AUTH_MASTODON_CLIENT_ID""ClientIdauth.mastodon.client_id (社交登录 > Mastodon > ClientId)
ATK_AUTH_MASTODON_CLIENT_SECRET""ClientSecretauth.mastodon.client_secret (社交登录 > Mastodon > ClientSecret)
ATK_AUTH_MASTODON_ENABLEDfalse启用auth.mastodon.enabled (社交登录 > Mastodon > Enabled)
ATK_AUTH_MICROSOFT_CLIENT_ID""ClientIdauth.microsoft.client_id (社交登录 > Microsoft > ClientId)
ATK_AUTH_MICROSOFT_CLIENT_SECRET""ClientSecretauth.microsoft.client_secret (社交登录 > Microsoft > ClientSecret)
ATK_AUTH_MICROSOFT_ENABLEDfalse启用auth.microsoft.enabled (社交登录 > Microsoft > Enabled)
ATK_AUTH_PATREON_CLIENT_ID""ClientIdauth.patreon.client_id (社交登录 > Patreon > ClientId)
ATK_AUTH_PATREON_CLIENT_SECRET""ClientSecretauth.patreon.client_secret (社交登录 > Patreon > ClientSecret)
ATK_AUTH_PATREON_ENABLEDfalse启用auth.patreon.enabled (社交登录 > Patreon > Enabled)
ATK_AUTH_SLACK_CLIENT_ID""ClientIdauth.slack.client_id (社交登录 > Slack > ClientId)
ATK_AUTH_SLACK_CLIENT_SECRET""ClientSecretauth.slack.client_secret (社交登录 > Slack > ClientSecret)
ATK_AUTH_SLACK_ENABLEDfalse启用auth.slack.enabled (社交登录 > Slack > Enabled)
ATK_AUTH_STEAM_API_KEY""ApiKeyauth.steam.api_key (社交登录 > Steam > ApiKey)
ATK_AUTH_STEAM_ENABLEDfalse启用auth.steam.enabled (社交登录 > Steam > Enabled)
ATK_AUTH_TIKTOK_CLIENT_ID""ClientIdauth.tiktok.client_id (社交登录 > Tiktok > ClientId)
ATK_AUTH_TIKTOK_CLIENT_SECRET""ClientSecretauth.tiktok.client_secret (社交登录 > Tiktok > ClientSecret)
ATK_AUTH_TIKTOK_ENABLEDfalse启用auth.tiktok.enabled (社交登录 > Tiktok > Enabled)
ATK_AUTH_TWITTER_CLIENT_ID""ClientIdauth.twitter.client_id (社交登录 > Twitter > ClientId)
ATK_AUTH_TWITTER_CLIENT_SECRET""ClientSecretauth.twitter.client_secret (社交登录 > Twitter > ClientSecret)
ATK_AUTH_TWITTER_ENABLEDfalse启用auth.twitter.enabled (社交登录 > Twitter > Enabled)
ATK_AUTH_WECHAT_CLIENT_ID""ClientIdauth.wechat.client_id (社交登录 > 微信 > ClientId)
ATK_AUTH_WECHAT_CLIENT_SECRET""ClientSecretauth.wechat.client_secret (社交登录 > 微信 > ClientSecret)
ATK_AUTH_WECHAT_ENABLEDfalse启用auth.wechat.enabled (社交登录 > 微信 > Enabled)

缓存

环境变量默认值描述路径
ATK_CACHE_ENABLEDfalse启用缓存cache.enabled (缓存 > 启用缓存)
ATK_CACHE_EXPIRES30缓存过期时间 (单位:分钟)cache.expires (缓存 > 缓存过期时间)
ATK_CACHE_REDIS_DB0数据库编号 (例如使用零号数据库填写 0)cache.redis.db (缓存 > Redis 配置 > 数据库编号)
ATK_CACHE_REDIS_NETWORK"tcp"连接方式 (可选:["tcp", "unix"])cache.redis.network (缓存 > Redis 配置 > 连接方式)
ATK_CACHE_REDIS_PASSWORD""密码cache.redis.password (缓存 > Redis 配置 > 密码)
ATK_CACHE_REDIS_USERNAME""用户名cache.redis.username (缓存 > Redis 配置 > 用户名)
ATK_CACHE_SERVER""缓存服务器地址 (例如:"localhost:6379")cache.server (缓存 > 缓存服务器地址)
ATK_CACHE_TYPE"builtin"缓存类型 (可选:["redis", "memcache", "builtin"])cache.type (缓存 > 缓存类型)
ATK_CACHE_WARM_UPfalse缓存启动预热 (程序启动时预热缓存)cache.warm_up (缓存 > 缓存启动预热)

验证码

环境变量默认值描述路径
ATK_CAPTCHA_ACTION_LIMIT3激活验证码所需操作次数captcha.action_limit (验证码 > 激活验证码所需操作次数)
ATK_CAPTCHA_ACTION_RESET60重置操作计数器超时 (单位:s, 设为 -1 不重置)captcha.action_reset (验证码 > 重置操作计数器超时)
ATK_CAPTCHA_ALWAYSfalse总是需要验证码captcha.always (验证码 > 总是需要验证码)
ATK_CAPTCHA_CAPTCHA_TYPE"image"验证类型 (可选:["image", "turnstile", "recaptcha", "hcaptcha", "geetest"])captcha.captcha_type (验证码 > 验证类型)
ATK_CAPTCHA_ENABLEDtrue启用验证码captcha.enabled (验证码 > 启用验证码)
ATK_CAPTCHA_GEETEST_CAPTCHA_ID""CaptchaIdcaptcha.geetest.captcha_id (验证码 > Geetest 极验 > CaptchaId)
ATK_CAPTCHA_GEETEST_CAPTCHA_KEY""CaptchaKeycaptcha.geetest.captcha_key (验证码 > Geetest 极验 > CaptchaKey)
ATK_CAPTCHA_HCAPTCHA_SECRET_KEY""SecretKeycaptcha.hcaptcha.secret_key (验证码 > hCaptcha > SecretKey)
ATK_CAPTCHA_HCAPTCHA_SITE_KEY""SiteKeycaptcha.hcaptcha.site_key (验证码 > hCaptcha > SiteKey)
ATK_CAPTCHA_RECAPTCHA_SECRET_KEY""SecretKeycaptcha.recaptcha.secret_key (验证码 > reCaptcha > SecretKey)
ATK_CAPTCHA_RECAPTCHA_SITE_KEY""SiteKeycaptcha.recaptcha.site_key (验证码 > reCaptcha > SiteKey)
ATK_CAPTCHA_TURNSTILE_SECRET_KEY""SecretKeycaptcha.turnstile.secret_key (验证码 > Turnstile > SecretKey)
ATK_CAPTCHA_TURNSTILE_SITE_KEY""SiteKeycaptcha.turnstile.site_key (验证码 > Turnstile > SiteKey)

数据库

环境变量默认值描述路径
ATK_DB_CHARSET"utf8mb4"编码格式db.charset (数据库 > 编码格式)
ATK_DB_FILE"./data/artalk.db"数据库文件 (仅 SQLite 数据库需填写)db.file (数据库 > 数据库文件)
ATK_DB_HOST"localhost"数据库地址db.host (数据库 > 数据库地址)
ATK_DB_NAME"artalk"数据库名称db.name (数据库 > 数据库名称)
ATK_DB_PASSWORD""数据库密码db.password (数据库 > 数据库密码)
ATK_DB_PORT3306数据库端口db.port (数据库 > 数据库端口)
ATK_DB_PREPARE_STMTtrue预编译语句db.prepare_stmt (数据库 > 预编译语句)
ATK_DB_SSLfalse启用 SSLdb.ssl (数据库 > 启用 SSL)
ATK_DB_TABLE_PREFIX""表前缀 (例如:"atk_")db.table_prefix (数据库 > 表前缀)
ATK_DB_TYPE"sqlite"数据库类型 (可选:["sqlite", "mysql", "pgsql", "mssql"])db.type (数据库 > 数据库类型)
ATK_DB_USER"root"数据库账户db.user (数据库 > 数据库账户)

邮件通知

环境变量默认值描述路径
ATK_EMAIL_ALI_DM_ACCESS_KEY_ID""AccessKeyIdemail.ali_dm.access_key_id (邮件通知 > 阿里云邮件推送 > AccessKeyId)
ATK_EMAIL_ALI_DM_ACCESS_KEY_SECRET""AccessKeySecretemail.ali_dm.access_key_secret (邮件通知 > 阿里云邮件推送 > AccessKeySecret)
ATK_EMAIL_ALI_DM_ACCOUNT_NAME"noreply@example.com"AccountNameemail.ali_dm.account_name (邮件通知 > 阿里云邮件推送 > AccountName)
ATK_EMAIL_ENABLEDfalse启用邮件通知email.enabled (邮件通知 > 启用邮件通知)
ATK_EMAIL_MAIL_SUBJECT"[] 您收到了来自 @ 的回复"邮件标题email.mail_subject (邮件通知 > 邮件标题)
ATK_EMAIL_MAIL_TPL"default"邮件模板文件 (填入文件路径使用自定义模板)email.mail_tpl (邮件通知 > 邮件模板文件)
ATK_EMAIL_SEND_ADDR"noreply@example.com"发信人地址email.send_addr (邮件通知 > 发信人地址)
ATK_EMAIL_SEND_NAME""发信人昵称email.send_name (邮件通知 > 发信人昵称)
ATK_EMAIL_SEND_TYPE"smtp"发送方式 (可选:["smtp", "ali_dm", "sendmail"])email.send_type (邮件通知 > 发送方式)
ATK_EMAIL_SMTP_HOST"smtp.qq.com"发件地址email.smtp.host (邮件通知 > SMTP 发送 > 发件地址)
ATK_EMAIL_SMTP_PASSWORD""密码email.smtp.password (邮件通知 > SMTP 发送 > 密码)
ATK_EMAIL_SMTP_PORT587发件端口email.smtp.port (邮件通知 > SMTP 发送 > 发件端口)
ATK_EMAIL_SMTP_USERNAME"example@qq.com"用户名email.smtp.username (邮件通知 > SMTP 发送 > 用户名)

界面配置

环境变量默认值描述路径
ATK_FRONTEND_DARKMODE"inherit"夜间模式 (可选:["inherit", "auto"])frontend.darkMode (界面配置 > 夜间模式)
ATK_FRONTEND_EDITORTRAVELtrue评论框穿梭frontend.editorTravel (界面配置 > 评论框穿梭)
ATK_FRONTEND_EMOTICONS"https://cdn.jsdelivr.net/gh/ArtalkJS/Emoticons/grps/default.json"表情包frontend.emoticons (界面配置 > 表情包)
ATK_FRONTEND_FLATMODE"auto"平铺模式 (可选:["auto", "true", "false"])frontend.flatMode (界面配置 > 平铺模式)
ATK_FRONTEND_GRAVATAR_MIRROR"https://weavatar.com/avatar/"API 地址frontend.gravatar.mirror (界面配置 > 头像 Gravatar > API 地址)
ATK_FRONTEND_GRAVATAR_PARAMS"sha256=1&d=mp&s=240"API 参数frontend.gravatar.params (界面配置 > 头像 Gravatar > API 参数)
ATK_FRONTEND_HEIGHTLIMIT_CHILDREN400子评论区域限高 (单位:px)frontend.heightLimit.children (界面配置 > 内容限高 > 子评论区域限高)
ATK_FRONTEND_HEIGHTLIMIT_CONTENT300评论内容限高 (单位:px)frontend.heightLimit.content (界面配置 > 内容限高 > 评论内容限高)
ATK_FRONTEND_HEIGHTLIMIT_SCROLLABLEfalse滚动限高 (允许限高区域滚动)frontend.heightLimit.scrollable (界面配置 > 内容限高 > 滚动限高)
ATK_FRONTEND_IMGLAZYLOADfalse图片懒加载 (可选:["false", "native", "data-src"])frontend.imgLazyLoad (界面配置 > 图片懒加载)
ATK_FRONTEND_LISTSORTtrue评论排序功能frontend.listSort (界面配置 > 评论排序功能)
ATK_FRONTEND_NESTMAX2最大嵌套层数frontend.nestMax (界面配置 > 最大嵌套层数)
ATK_FRONTEND_NESTSORT"DATE_ASC"嵌套评论排序规则 (可选:["DATE_ASC", "DATE_DESC", "VOTE_UP_DESC"])frontend.nestSort (界面配置 > 嵌套评论排序规则)
ATK_FRONTEND_NOCOMMENT""无评论显示文字frontend.noComment (界面配置 > 无评论显示文字)
ATK_FRONTEND_PAGINATION_AUTOLOADtrue滚动加载frontend.pagination.autoLoad (界面配置 > 评论分页 > 滚动加载)
ATK_FRONTEND_PAGINATION_PAGESIZE20每页评论数frontend.pagination.pageSize (界面配置 > 评论分页 > 每页评论数)
ATK_FRONTEND_PAGINATION_READMOREtrue加载更多模式 (关闭则使用分页条)frontend.pagination.readMore (界面配置 > 评论分页 > 加载更多模式)
ATK_FRONTEND_PLACEHOLDER""评论框占位文字frontend.placeholder (界面配置 > 评论框占位文字)
ATK_FRONTEND_PLUGINURLS[]插件frontend.pluginURLs (界面配置 > 插件)
ATK_FRONTEND_PREVIEWtrue编辑器实时预览功能frontend.preview (界面配置 > 编辑器实时预览功能)
ATK_FRONTEND_REQTIMEOUT15000请求超时 (单位:毫秒)frontend.reqTimeout (界面配置 > 请求超时)
ATK_FRONTEND_SENDBTN""发送按钮文字frontend.sendBtn (界面配置 > 发送按钮文字)
ATK_FRONTEND_UABADGEfalse用户 UA 徽标frontend.uaBadge (界面配置 > 用户 UA 徽标)
ATK_FRONTEND_VERSIONCHECKtrue版本检测frontend.versionCheck (界面配置 > 版本检测)
ATK_FRONTEND_VOTEtrue投票按钮frontend.vote (界面配置 > 投票按钮)
ATK_FRONTEND_VOTEDOWNfalse反对按钮frontend.voteDown (界面配置 > 反对按钮)

服务器

环境变量默认值描述路径
ATK_HTTP_BODY_LIMIT100请求体大小限制 (单位:MB)http.body_limit (服务器 > 请求体大小限制)
ATK_HTTP_PROXY_HEADER""代理标头名 (当使用 CDN 时填写 X-Forwarded-For 获取用户真实 IP)http.proxy_header (服务器 > 代理标头名)

图片上传

环境变量默认值描述路径
ATK_IMG_UPLOAD_ENABLEDtrue启用图片上传img_upload.enabled (图片上传 > 启用图片上传)
ATK_IMG_UPLOAD_MAX_SIZE5图片大小限制 (单位:MB)img_upload.max_size (图片上传 > 图片大小限制)
ATK_IMG_UPLOAD_PATH"./data/artalk-img/"图片存放路径img_upload.path (图片上传 > 图片存放路径)
ATK_IMG_UPLOAD_PUBLIC_PATH<nil>图片链接基础路径 (默认为 "/static/images/")img_upload.public_path (图片上传 > 图片链接基础路径)
ATK_IMG_UPLOAD_UPGIT_DEL_LOCALtrue上传后删除本地的图片img_upload.upgit.del_local (图片上传 > Upgit 配置 > 上传后删除本地的图片)
ATK_IMG_UPLOAD_UPGIT_ENABLEDfalse启用 Upgitimg_upload.upgit.enabled (图片上传 > Upgit 配置 > 启用 Upgit)
ATK_IMG_UPLOAD_UPGIT_EXEC"upgit -c <upgit配置文件路径> -t /artalk-img"命令行参数img_upload.upgit.exec (图片上传 > Upgit 配置 > 命令行参数)

IP 属地

环境变量默认值描述路径
ATK_IP_REGION_DB_PATH"./data/ip2region.xdb"数据文件路径 (.xdb 格式)ip_region.db_path (IP 属地 > 数据文件路径)
ATK_IP_REGION_ENABLEDfalse启用 IP 属地展示ip_region.enabled (IP 属地 > 启用 IP 属地展示)
ATK_IP_REGION_PRECISION"province"显示精度 (可选:["province", "city", "country"])ip_region.precision (IP 属地 > 显示精度)

日志

环境变量默认值描述路径
ATK_LOG_ENABLEDtrue启用日志log.enabled (日志 > 启用日志)
ATK_LOG_FILENAME"./data/artalk.log"日志文件路径log.filename (日志 > 日志文件路径)

评论审核

环境变量默认值描述路径
ATK_MODERATOR_AKISMET_KEY""Akismet Key (Akismet 反垃圾服务,https://akismet.com)moderator.akismet_key (评论审核 > Akismet Key)
ATK_MODERATOR_ALIYUN_ACCESS_KEY_ID""AccessKeyIdmoderator.aliyun.access_key_id (评论审核 > 阿里云内容安全 > AccessKeyId)
ATK_MODERATOR_ALIYUN_ACCESS_KEY_SECRET""AccessKeySecretmoderator.aliyun.access_key_secret (评论审核 > 阿里云内容安全 > AccessKeySecret)
ATK_MODERATOR_ALIYUN_ENABLEDfalse启用moderator.aliyun.enabled (评论审核 > 阿里云内容安全 > Enabled)
ATK_MODERATOR_ALIYUN_REGION"cn-shanghai"Regionmoderator.aliyun.region (评论审核 > 阿里云内容安全 > Region)
ATK_MODERATOR_API_FAIL_BLOCKfalseAPI 请求错误时拦截 (关闭此项当请求错误时让评论放行)moderator.api_fail_block (评论审核 > API 请求错误时拦截)
ATK_MODERATOR_KEYWORDS_ENABLEDfalse启用moderator.keywords.enabled (评论审核 > 关键词过滤 > Enabled)
ATK_MODERATOR_KEYWORDS_FILE_SEP"\n"词库文件内容分割符 (例如填写 "\n" 文件中一行一个关键词)moderator.keywords.file_sep (评论审核 > 关键词过滤 > 词库文件内容分割符)
ATK_MODERATOR_KEYWORDS_FILES[./data/词库_1.txt]词库文件 (支持多个词库文件)moderator.keywords.files (评论审核 > 关键词过滤 > 词库文件)
ATK_MODERATOR_KEYWORDS_PENDINGfalse匹配成功设为待审状态moderator.keywords.pending (评论审核 > 关键词过滤 > 匹配成功设为待审状态)
ATK_MODERATOR_KEYWORDS_REPLACE_TO"x"替换字符moderator.keywords.replace_to (评论审核 > 关键词过滤 > 替换字符)
ATK_MODERATOR_PENDING_DEFAULTfalse默认待审 (发表新评论需要后台人工审核后才能显示)moderator.pending_default (评论审核 > 默认待审)
ATK_MODERATOR_TENCENT_ENABLEDfalse启用moderator.tencent.enabled (评论审核 > 腾讯云文本内容安全 > Enabled)
ATK_MODERATOR_TENCENT_REGION"ap-guangzhou"Regionmoderator.tencent.region (评论审核 > 腾讯云文本内容安全 > Region)
ATK_MODERATOR_TENCENT_SECRET_ID""SecretIdmoderator.tencent.secret_id (评论审核 > 腾讯云文本内容安全 > SecretId)
ATK_MODERATOR_TENCENT_SECRET_KEY""SecretKeymoderator.tencent.secret_key (评论审核 > 腾讯云文本内容安全 > SecretKey)

SSL

环境变量默认值描述路径
ATK_SSL_CERT_PATH""证书文件路径ssl.cert_path (SSL > 证书文件路径)
ATK_SSL_ENABLEDfalse启用 SSLssl.enabled (SSL > 启用 SSL)
ATK_SSL_KEY_PATH""密钥文件路径ssl.key_path (SSL > 密钥文件路径)

开发者

通过 ATK_DEBUG=1 启用开发者模式。

本文档由 Artalk 开发者工具自动生成,执行 make update-conf-docs 根据模版配置文件 (conf/artalk.example.zh-CN.yml) 中的注释更新本页内容。

相关代码位于 @ArtalkJS/Artalk:/internal/config/ 目录。