高级配置
Databasus 开箱即用,默认设置就很合理:标准的单容器安装完全不需要任何配置。本页的每个变量都是可选的,99% 的生产环境用不到。
OAuth
Databasus 默认使用邮箱加密码登录。你还可以额外允许用户用 Google 或 GitHub 账号登录。只要设置了某个提供商的 client ID,对应的按钮就会显示,但只有 client ID 和 client secret 都存在时,登录才能完成。
注册 OAuth 应用时,把重定向(回调)URL 设置为 https://<your-domain>/auth/callback。由于这个重定向,OAuth 登录要求你的实例通过公网域名以 HTTPS 提供服务,见下面的说明。
登录和邮件功能需要 HTTPS。 OAuth 登录和邮件都要求你的实例能通过公网域名以 HTTPS 访问:OAuth 提供商会把浏览器重定向回 https://<your-domain>/auth/callback,而邮件里的链接必须对收件人可打开。只在 localhost 或纯 HTTP 上运行的实例无法使用这些功能。获得 HTTPS 最简单的方式是 Caddy 反向代理 方案。
在 Google Cloud Console 中创建 OAuth client(APIs & Services → Credentials → Create credentials → OAuth client ID,应用类型选 Web application),并把 https://<your-domain>/auth/callback 添加为授权重定向 URI。
| 变量 | 说明 |
|---|---|
GOOGLE_CLIENT_ID | 你的 Google OAuth client 的 client ID。设置后会显示"Sign in with Google"按钮。 |
GOOGLE_CLIENT_SECRET | 你的 Google OAuth client 的 client secret。必须与 ID 一起设置,登录才能生效。 |
GitHub
在 GitHub Developer settings 中创建 OAuth 应用(Settings → Developer settings → OAuth Apps → New OAuth App),把 authorization callback URL 设置为 https://<your-domain>/auth/callback。
| 变量 | 说明 |
|---|---|
GITHUB_CLIENT_ID | 你的 GitHub OAuth 应用的 client ID。设置后会显示"Sign in with GitHub"按钮。 |
GITHUB_CLIENT_SECRET | 你的 GitHub OAuth 应用的 client secret。必须与 ID 一起设置,登录才能生效。 |
邮件 (SMTP)
连接一个 SMTP 服务器,Databasus 就能发送事务性邮件,例如密码重置链接和工作区邀请。只有 SMTP_HOST 和 DATABASUS_URL 都设置了,邮件才视为已配置;在那之前,邮件相关功能在界面中保持隐藏。
| 变量 | 说明 |
|---|---|
SMTP_HOST | SMTP 服务器主机名(例如 smtp.gmail.com)。与 DATABASUS_URL 一起设置即启用邮件。 |
SMTP_PORT | SMTP 服务器端口(例如 587)。设置了 SMTP_HOST 时必须是正整数。 |
SMTP_USER | SMTP 认证用户名。 |
SMTP_PASSWORD | SMTP 认证密码。Gmail 请使用 App Password,而不是账号密码。 |
SMTP_FROM | 发出邮件的"From"地址。 |
SMTP_INSECURE_SKIP_VERIFY | 设为 true 时连接 SMTP 服务器跳过 TLS 证书校验。默认 false。只在可信网络内的自签名证书服务器上使用:它会关闭对中间人攻击的防护。 |
DATABASUS_URL | 你的实例的公开基础 URL(例如 https://backup.example.com)。用于生成邮件内的链接。必须与 SMTP_HOST 一起设置。 |
注册验证码(Cloudflare Turnstile)
如果你的实例能从公网访问,可以在注册和登录表单上加一层 Cloudflare Turnstile 挑战来挡机器人。两个密钥都来自 Turnstile 控制台,只有两者都设置了,挑战才会生效。
如果你想彻底禁止外部注册,而不只是加一道挑战,那根本不需要验证码:在界面中打开 Databasus settings → Allow sign up 并把它关掉。这会完全关闭注册表单。
| 变量 | 说明 |
|---|---|
CLOUDFLARE_TURNSTILE_SITE_KEY | 公开的 Turnstile site key,用于在浏览器中渲染小组件。 |
CLOUDFLARE_TURNSTILE_SECRET_KEY | Turnstile 私密密钥,后端用它校验挑战响应。 |
遥测
Databasus 默认发送匿名、无法识别身份的使用遥测。它不包含任何个人数据,帮助我们了解项目的使用情况。具体收集哪些内容可以在隐私政策中查看,你也可以完全关闭它。
| 变量 | 默认值 | 说明 |
|---|---|---|
IS_DISABLE_ANONYMOUS_TELEMETRY | false | 设为 true 可禁用匿名使用遥测。 |
日志
Databasus 把日志写到 stdout,并以 JSON 形式镜像到数据卷上的 databasus.log。设置 OPEN_TELEMETRY_URL 后,日志还会通过 Open Telemetry 导出到 VictoriaLogs、Graylog、SigNoz、Grafana Loki、Datadog、Honeycomb 等后端,或导出到 OpenTelemetry Collector(它本身就是一个 OTLP 接收端)。
- 传输方式由 URL 协议决定。
http://和https://发送 OTLP/HTTP,按原样使用整个 URL(包含路径);grpc://和grpcs://发送 OTLP/gRPC,只使用主机和端口。 - 认证写在
OPEN_TELEMETRY_HEADERS里,或以user:password@host的形式写进 URL。 - 敏感信息(密码、令牌、凭据)出现在 URL 中时,会在日志记录离开进程之前被脱敏。
- 审计条目随应用日志一起发送,带
log_type=audit标签,且不受LOG_LEVEL影响,因此调高日志级别不会丢失审计记录。
| 变量 | 默认值 | 说明 |
|---|---|---|
OPEN_TELEMETRY_URL | — | 完整的 OTLP 端点 URL,含路径。不设置则日志只留在容器内。URL 带查询字符串、缺少主机或使用未知协议时,容器会在启动时直接停止,而不是把日志导出到不存在的地方。 |
OPEN_TELEMETRY_HEADERS | — | 逗号分隔的 key=value 对,随每次导出发送,通常是 API 密钥。值会做百分号解码,与标准的 OTEL_EXPORTER_OTLP_HEADERS 格式一致。 |
LOG_LEVEL | info | 取值为 debug、info、 warn 或 error之一。无法识别的值回退到 info。 |
LOG_FILE_IS_ENABLED | true | 在数据目录旁写入 databasus.log,5 MB 轮转并保留 3 个旧文件。如果你的平台已经收集 stdout,可设为 false。 |
常见后端的取值,以及各自用于认证的 header。把主机、区域和密钥替换成你自己的:
| 后端 | OPEN_TELEMETRY_URL | OPEN_TELEMETRY_HEADERS |
|---|---|---|
| VictoriaLogs | http://victoria-logs:9428/insert/opentelemetry/v1/logs | Authorization=Basic%20dXNlcjpwYXNzd29yZA== — 你的 vmauth 或反向代理所要求的凭据,因为 VictoriaLogs 本身在写入路径上没有认证。 |
| OpenTelemetry Collector | grpc://otel-collector:4317 | Authorization=Bearer%20your-token — 对应接收端的 bearertokenauth 或 basicauth 扩展。只在内网可达的 Collector 通常不需要。 |
| Graylog 6.2+ | grpc://graylog:4317 | Authorization=Bearer%20your-token — 在 OpenTelemetry (gRPC) 输入上设置的令牌。该输入也接受 mTLS。 |
| SigNoz Cloud | grpcs://ingest.eu.signoz.cloud:443 | signoz-ingestion-key=your-ingestion-key |
| Grafana Cloud | https://otlp-gateway-prod-eu-west-0.grafana.net/otlp/v1/logs | Authorization=Basic%20<base64> — instance-id:api-token 的 base64 编码 |
| Honeycomb | https://api.honeycomb.io/v1/logs | x-honeycomb-team=your-api-key |
| Datadog Agent | grpc://datadog-agent:4317 | 无 — Agent 持有 API 密钥并代为转发。 |
header 值会做百分号解码,所以 Basic 或 Bearer 后面的空格写作 %20,值里的逗号写作 %2C。Basic 认证也可以直接放进 URL:https://user:password@host/path,Databasus 会把它转换成同样的 header 并使其不出现在日志中。通过 http:// 和 grpc:// 传输时密钥和密码是明文的,所以在可信网络之外请使用 https:// 或 grpcs://。
分析脚本
Databasus 可以把你自己的分析或跟踪代码片段注入应用,例如 Google Analytics、Plausible、Umami 等。设置了 ANALYTICS_SCRIPT 后,它的值会在启动时插入到页面的 <head> 中。
安全警告:该值会被原样注入为 HTML 和 JavaScript,并在每个访问者的浏览器中以对 Databasus 界面的完全访问权限运行。只设置你完全掌控且信任的代码片段。
| 变量 | 说明 |
|---|---|
ANALYTICS_SCRIPT | 自定义的 <script> 标记,插入到 </head> 闭合标签之前。不设置则不添加任何分析代码。 |