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_TIMEZONE=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

TZ 设置容器或宿主进程环境的时区,ATK_TIMEZONE 设置 Artalk 应用时区;两者可以不同。Artalk 应用时区只在进程初始化时生效,修改 ATK_TIMEZONE 后必须完整重启 Artalk 进程或容器。

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

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", "tr", "pt-PT"])locale (语言)
ATK_LOGIN_TIMEOUT259200登录有效时长 (单位:秒)login_timeout (登录有效时长)
ATK_PAGE_TITLE_AUTO_FETCHfalse自动抓取页面标题 (关闭可禁用标题自动抓取功能(可以手动抓取),提高安全性)page_title_auto_fetch (自动抓取页面标题)
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_GITEA_SITE_URL""服务地址 (留空使用 https://gitea.com,支持端口和子路径)auth.gitea.site_url (社交登录 > Gitea > 服务地址)
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_SSO_ENABLEDfalse启用 SSO 令牌交换auth.sso.enabled (社交登录 > SSO > 启用 SSO 令牌交换)
ATK_AUTH_SSO_ISSUER""OIDC issuer 地址 (如 "tenant.auth0.com" 或 "https://tenant.auth0.com")auth.sso.issuer (社交登录 > SSO > OIDC issuer 地址)
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_CAPJS_API_ENDPOINT""ApiEndpointcaptcha.capjs.api_endpoint (验证码 > Cap > ApiEndpoint)
ATK_CAPTCHA_CAPJS_KEY_ID""KeyIdcaptcha.capjs.key_id (验证码 > Cap > KeyId)
ATK_CAPTCHA_CAPJS_SECRET_KEY""SecretKeycaptcha.capjs.secret_key (验证码 > Cap > SecretKey)
ATK_CAPTCHA_CAPTCHA_TYPE"image"验证类型 (可选:["image", "turnstile", "recaptcha", "hcaptcha", "geetest", "capjs"])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 或标准版 .ipdb 格式)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/ 目录。

贡献者

The avatar of contributor named as qwqcode qwqcode
The avatar of contributor named as Hzc Hzc
The avatar of contributor named as MWTJC MWTJC
The avatar of contributor named as Daniel Sousa Daniel Sousa
The avatar of contributor named as Henrik Pettersen Henrik Pettersen

页面历史