高级配置

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

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_HOSTDATABASUS_URL 都设置了,邮件才视为已配置;在那之前,邮件相关功能在界面中保持隐藏。

变量说明
SMTP_HOSTSMTP 服务器主机名(例如 smtp.gmail.com)。与 DATABASUS_URL 一起设置即启用邮件。
SMTP_PORTSMTP 服务器端口(例如 587)。设置了 SMTP_HOST 时必须是正整数。
SMTP_USERSMTP 认证用户名。
SMTP_PASSWORDSMTP 认证密码。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_KEYTurnstile 私密密钥,后端用它校验挑战响应。

遥测

Databasus 默认发送匿名、无法识别身份的使用遥测。它不包含任何个人数据,帮助我们了解项目的使用情况。具体收集哪些内容可以在隐私政策中查看,你也可以完全关闭它。

变量默认值说明
IS_DISABLE_ANONYMOUS_TELEMETRYfalse设为 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_LEVELinfo取值为 debuginfo warnerror之一。无法识别的值回退到 info
LOG_FILE_IS_ENABLEDtrue在数据目录旁写入 databasus.log,5 MB 轮转并保留 3 个旧文件。如果你的平台已经收集 stdout,可设为 false

常见后端的取值,以及各自用于认证的 header。把主机、区域和密钥替换成你自己的:

后端OPEN_TELEMETRY_URLOPEN_TELEMETRY_HEADERS
VictoriaLogshttp://victoria-logs:9428/insert/opentelemetry/v1/logsAuthorization=Basic%20dXNlcjpwYXNzd29yZA== — 你的 vmauth 或反向代理所要求的凭据,因为 VictoriaLogs 本身在写入路径上没有认证。
OpenTelemetry Collectorgrpc://otel-collector:4317Authorization=Bearer%20your-token — 对应接收端的 bearertokenauth basicauth 扩展。只在内网可达的 Collector 通常不需要。
Graylog 6.2+grpc://graylog:4317Authorization=Bearer%20your-token — 在 OpenTelemetry (gRPC) 输入上设置的令牌。该输入也接受 mTLS。
SigNoz Cloudgrpcs://ingest.eu.signoz.cloud:443signoz-ingestion-key=your-ingestion-key
Grafana Cloudhttps://otlp-gateway-prod-eu-west-0.grafana.net/otlp/v1/logsAuthorization=Basic%20<base64> instance-id:api-token 的 base64 编码
Honeycombhttps://api.honeycomb.io/v1/logsx-honeycomb-team=your-api-key
Datadog Agentgrpc://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> 闭合标签之前。不设置则不添加任何分析代码。