ArtalkJS 环境变量配置完全指南
前言
ArtalkJS 作为一款现代化的评论系统,提供了丰富的环境变量配置选项,使得系统部署和运维变得更加灵活便捷。本文将全面解析 ArtalkJS 的环境变量配置体系,帮助开发者更好地理解和应用这些配置项。
环境变量基础
ArtalkJS 的环境变量命名遵循以下规范:
- 以
ATK_
开头 - 全部大写字母
- 对应配置文件中的各个配置节点
环境变量的优先级高于配置文件,这意味着通过环境变量设置的参数会覆盖配置文件中的相同配置。
配置验证方法
部署完成后,可以通过以下命令验证配置是否生效:
artalk config
容器化部署示例
使用容器化技术(如 Docker Compose)部署 ArtalkJS 时,可以方便地通过环境变量进行配置:
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=我的博客
- ATK_SITE_URL=https://example.com
- ATK_ADMIN_USERS_0_NAME=admin
- ATK_ADMIN_USERS_0_EMAIL=admin@example.org
- ATK_ADMIN_USERS_0_PASSWORD=(bcrypt)$2y$10$ti4vZYIrxVN8rLcYXVgXCO.GJND0dyI49r7IoF3xqIx8bBRmIBZRm
数组类型变量的设置
对于数组类型的配置项,ArtalkJS 提供了两种设置方式:
-
通过空格分隔的字符串:
ATK_TRUSTED_DOMAINS="https://a.com https://b.com"
-
通过数字索引:
ATK_TRUSTED_DOMAINS_0="https://a.com" ATK_TRUSTED_DOMAINS_1="https://b.com"
核心配置分类
ArtalkJS 的环境变量配置分为多个类别,下面我们将详细介绍每个类别的重要配置项。
1. 通用配置
| 变量名 | 默认值 | 说明 | |-------|-------|------| | ATK_HOST | "0.0.0.0" | 服务器监听地址 | | ATK_PORT | 23366 | 服务器监听端口 | | ATK_DEBUG | false | 是否启用调试模式 | | ATK_LOCALE | "zh-CN" | 系统语言设置 | | ATK_SITE_DEFAULT | "默认站点" | 默认站点名称 | | ATK_SITE_URL | "" | 默认站点URL |
2. 数据库配置
ArtalkJS 支持多种数据库类型:
| 变量名 | 默认值 | 说明 | |-------|-------|------| | ATK_DB_TYPE | "sqlite" | 数据库类型(sqlite/mysql/pgsql/mssql) | | ATK_DB_HOST | "localhost" | 数据库服务器地址 | | ATK_DB_PORT | 3306 | 数据库端口 | | ATK_DB_NAME | "artalk" | 数据库名称 | | ATK_DB_USER | "root" | 数据库用户名 | | ATK_DB_PASSWORD | "" | 数据库密码 |
3. 邮件通知配置
邮件通知系统支持多种发送方式:
| 变量名 | 默认值 | 说明 | |-------|-------|------| | ATK_EMAIL_ENABLED | false | 是否启用邮件通知 | | ATK_EMAIL_SEND_TYPE | "smtp" | 邮件发送方式(smtp/ali_dm/sendmail) | | ATK_EMAIL_SMTP_HOST | "smtp.qq.com" | SMTP服务器地址 | | ATK_EMAIL_SMTP_PORT | 587 | SMTP服务器端口 | | ATK_EMAIL_SMTP_USERNAME | "example@qq.com" | SMTP用户名 | | ATK_EMAIL_SMTP_PASSWORD | "" | SMTP密码 |
4. 验证码配置
ArtalkJS 支持多种验证码类型:
| 变量名 | 默认值 | 说明 | |-------|-------|------| | ATK_CAPTCHA_ENABLED | true | 是否启用验证码 | | ATK_CAPTCHA_CAPTCHA_TYPE | "image" | 验证码类型(image/turnstile/recaptcha等) | | ATK_CAPTCHA_ACTION_LIMIT | 3 | 触发验证码的操作次数阈值 |
5. 社交登录配置
支持多种社交平台登录:
| 变量名 | 默认值 | 说明 | |-------|-------|------| | ATK_AUTH_ENABLED | false | 是否启用社交登录 | | ATK_AUTH_GITHUB_CLIENT_ID | "" | GitHub OAuth Client ID | | ATK_AUTH_GITHUB_CLIENT_SECRET | "" | GitHub OAuth Client Secret | | ATK_AUTH_GOOGLE_CLIENT_ID | "" | Google OAuth Client ID | | ATK_AUTH_GOOGLE_CLIENT_SECRET | "" | Google OAuth Client Secret |
6. 多元推送配置
支持多种通知渠道:
| 变量名 | 默认值 | 说明 | |-------|-------|------| | ATK_ADMIN_NOTIFY_EMAIL_ENABLED | true | 是否启用邮件通知 | | ATK_ADMIN_NOTIFY_WEBHOOK_ENABLED | false | 是否启用Webhook通知 | | ATK_ADMIN_NOTIFY_SLACK_ENABLED | false | 是否启用Slack通知 |
最佳实践建议
-
安全性配置:
- 确保
ATK_APP_KEY
设置为足够复杂的随机字符串 - 生产环境应将
ATK_DEBUG
设为 false - 数据库密码等敏感信息应通过环境变量而非配置文件设置
- 确保
-
性能优化:
- 对于高流量站点,建议启用缓存
ATK_CACHE_ENABLED=true
- 考虑使用 Redis 作为缓存后端
ATK_CACHE_TYPE=redis
- 对于高流量站点,建议启用缓存
-
国际化支持:
- 通过
ATK_LOCALE
设置系统语言 - 支持的语言包括:en, zh-CN, zh-TW, ja, fr, ko, ru
- 通过
常见问题解答
Q: 如何知道当前生效的配置?
A: 运行 artalk config
命令可以查看当前生效的所有配置。
Q: 环境变量和配置文件冲突时哪个优先级更高? A: 环境变量的优先级高于配置文件。
Q: 如何设置数组类型的配置项? A: 可以使用空格分隔的字符串或数字索引两种方式,如:
ATK_TRUSTED_DOMAINS="https://a.com https://b.com"
或
ATK_TRUSTED_DOMAINS_0="https://a.com"
ATK_TRUSTED_DOMAINS_1="https://b.com"
结语
ArtalkJS 的环境变量配置系统提供了极大的灵活性,使得系统可以在不同环境中轻松部署和调整。通过合理配置这些环境变量,您可以充分发挥 ArtalkJS 的各项功能,打造一个安全、高效、用户友好的评论系统。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考