Vaultwarden Wiki 中文版
⮐ Vaultwarden Wiki个人主页联系我
  • 关于
  • 首页
  • FAQ
    • 1.FAQ
    • 2.审计
    • 故障排除
      • 1.Bitwarden Android 故障排除
  • 容器镜像的使用
    • 1.容器镜像的选择
    • 2.启动容器
    • 3.更新 Vaultwarden 镜像
    • 4.使用 Docker Compose
    • 5.使用 Podman
  • 部署
    • 1.构建您自己的镜像
    • 2.构建二进制
    • 3.预构建二进制
    • 4.第三方包
    • 5.部署示例
    • 6.代理示例
    • 7.转储示例
    • HTTPS
      • 1.启用 HTTPS
      • 2.使用 Let's Encrypt 证书运行私有 Vaultwarden 实例
  • 配置
    • 1.配置概述
    • 2.禁用新用户注册
    • 3.禁用邀请
    • 4.启用管理页面
    • 5.禁用管理令牌
    • 6.启用 WebSocket 通知
    • 7.启用移动客户端推送通知
    • 8.启用 U2F 和 FIDO2 WebAuthn 身份验证
    • 9.启用 YubiKey OTP 身份验证
    • 10.更改持久性数据位置
    • 11.更改 API 请求大小限制
    • 12.更改 worker 数量
    • 13.SMTP 配置
    • 14.显示密码提示
    • 15.禁用或覆盖密码库接口托管
    • 16.日志记录
    • 17.设置为 systemd 服务
    • 18.从 LDAP 同步用户
    • 19.使用备用基本目录(子目录/子路径)
    • 20.其他配置
    • *使用 systemd docker 运行
    • 数据库
      • 1.使用 MariaDB (MySQL) 后端
      • 2.使用 PostgreSQL 后端
      • 3.在未启用 WAL 的情况下运行
      • 4.从 MariaDB (MySQL) 迁移到 SQLite
    • 安全
      • 1.强化指南
      • 2.Fail2ban 设置
      • 3.Docker Traefik ModSecurity 设置
    • 其他
      • 1.翻译电子邮件模板
      • 2.翻译管理页面
      • 3.自定义 Vaultwarden CSS
  • 备份
    • 1.通用(非 docker)
  • 其他
    • 1.从 Keepass 或 KeepassX 导入数据
    • 2.备份您的密码库
    • 3.与上游 API 实现的区别
    • 4.支持上游的发展
    • 5.使用 Cloudflare DNS 的 Caddy 2.x
    • 6.Git hooks
    • *使用非 root 用户运行 docker 容器
    • *使私有 CA 和自签名证书兼容 Chrome
    • *测试 SSO
由 GitBook 提供支持
在本页
  • 如何配置 Vaultwarden
  • 使用环境变量
  • 使用 ENV_FILE
  • 从文件加载单个值
  • 使用 /admin 页面
  • 配置优先级
  • 设置域名 URL
  • 有关不同配置选项的更多信息
  1. 配置

1.配置概述

上一页配置下一页2.禁用新用户注册

最后更新于2个月前

对应的

[译者注]:

  1. 某些设置只能通过环境变量配置,如管理页面中 Read-Only Config 部分的配置(如日志记录)

  2. 通过管理页面修改配置后马上生效

  3. 若直接修改 config.json 文件,则需要重启 Vaultwarden 才能生效(因为只有启动时才会读取 config.json 文件)

如何配置 Vaultwarden

基本上有三种不同的方式配置 Vaultwarden:

  1. 设置环境变量

  2. 使用 ENV_FILE 以及

  3. 通过 config.json(不推荐)(这可以通过生成和管理)

您可以在 文件中找到大多数配置选项的文档列表。通常,注释内容中的值表示默认值,但这并不一定。如果不是,事实来源将是 。

如果启用了,您还可以看到带有配置值的配置选项(如果您使用 config.json,则指示该值是否已从初始值更改)。

注意:config.json 文件不是配置您的设置的推荐方式!要么使用环境变量,您可以通过多种方式为您的容器环境(Docker、Docker-Compose、K8s 等)进行配置;或者,如果使用独立的二进制文件(其不是由 Vaultwarden 本身分发的),请使用位于当前工作目录下的 .env 文件。在管理界面中保存设置时会创建并覆盖 config.json 文件!

如果您依赖,则必须检查提供的文档(例如 Arch Linux 的 vaultwarden 软件包的安装通知),因为下游维护者通常会对他们的软件包做出一些假设。

使用环境变量

配置 Vaultwarden 的推荐方法是通过环境变量。根据您运行 Vaultwarden 的方式(例如直接运行、在容器化环境中运行、通过 systemd 运行等),设置环境变量的方法有多种,因此请熟悉您的平台和安装方法。

请注意,不同平台之间的环境文件解释方式可能存在一些细微的差异(关于变量扩展或是否可以或应该在值周围使用引号等)。

您还需要确保在正确的环境中设置变量。如果您使用容器化环境,vaultwarden 进程将与主机平台隔离运行。如果您使用可以设置环境变量的容器管理平台(例如使用 docker-compose 时),这一点尤其重要。因为通常这些环境变量可以在创建容器时使用,但它们不会被传递到正在运行的容器中。

使用 ENV_FILE

Vaultwarden 还可以直接从环境文件本身读取配置选项,这在开发 Vaultwarden 时特别有用。

默认情况下,Vaultwarden 将尝试从当前工作目录读取一个名为 .env 的文件(例如,如果您从签出存储库的根目录运行 cargo run,它应该位于同一根目录中)。

直接在环境中设置的值将优先于此方法。这意味着可以在不更改 ENV_FILE 中的值的情况下覆盖这些值(这对于调试目的可能很有用,例如,当您临时设置 LOG_LEVEL=debug 时)。

从文件加载单个值

Vaultwarden 支持从磁盘加载配置选项的值(通过环境变量或在 ENV_FILE 中设置)。您可以通过将 _FILE 添加到相关配置选项并将值设置为包含该值的文件的路径来实现此目的。

如果您想使用 docker secrets 这样的功能,这非常有用。例如,通过设置 SMTP_PASSWORD_FILE=/run/secrets/smtp_password ,它将从文件加载 SMTP 密码,而不将其作为环境变量提供给进程或容器)。

使用 /admin 页面

此外,Vaultwarden 还可以使用 config.json 文件进行配置,该文件可以通过 /admin 面板生成和编辑,并保存在数据文件夹中。

config.json 中的设置将覆盖任何其他配置方法,并且您将在启动时收到哪些设置已被 config.json 覆盖的警告。

由于生成的 config.json 在保存时将包含所有可编辑选项,因此请注意,一旦通过 /admin 页面生成配置文件,您就无法通过任何其他方法修改这些选项(至少在不修改或删除配置的情况下无法修改 config.json 文件)。

只读配置部分中的选项无法通过 /admin 页面修改,因为它们需要重新启动服务器,如果您手动将它们添加到 config.json 并且点击了「保存」,它们将被移除。请使用上述其他方法来修改它们。在大多数情况下,这意味着您还需要重新创建容器!

某些环境变量(例如 ROCKET_ADDRESS 或 ROCKET_PORT)不是 Vaultwarden 配置系统的一部分,因此无法通过 config.json 来设置。

配置优先级

  1. 编译时,默认值通过 src/config.rs 进行硬编码

  2. 无需重新编译二进制文件。这些默认值可以通过配置 ENV_FILE 来更改

  3. 也可以通过设置环境变量(这将推翻 ENV_FILE 中的设置)来更改

  4. 最终用户(具有 /admin 面板访问权限)可以选择创建具有最高优先级的 config.json

设置域名 URL

确保将 DOMAIN 环境变量(或配置文件中的 domain)设置为您的 Vaultwarden 实例的基础 URL。如果不这样做,可能会出现莫名其妙的功能性问题。一些示例:

  • https://vaultwarden.example.com

  • https://vaultwarden.example.com:8443(非默认端口)

有关不同配置选项的更多信息

  • 邀请和注册设置

  • 管理后台

  • 通知

  • 2FA 设置

大多数可以设置的环境变量都可以在 .env.template 文件中找到。您还可以使用该文件作为容器环境的环境文件的基础(例如,通过 属性)或与 systemd 服务一起使用(参见 ) - 只是不要将此文件与下面的 混淆!

如果更改值,则需要重新创建使用环境变量配置的容器,因为这些值绑定到容器。因此,除非该值,否则重新启动不会执行任何操作。

使用环境文件设置进程的运行时环境(无论是使用 docker 还是 systemd)与在 Vaultwarden 中使用 env 文件之间存在差异。例如。您还可以在使用时将环境文件挂载到 /.env ,而不是 (创建容器时读取)传递环境文件。参见上面的解释。

🙏 虽然从技术上讲可以手动创建和编辑 config.json 文件,但我们强烈建议不要这样做。 具有相当严格的语法,如果您不知道自己在做什么,这可能会成为调试的噩梦。

https://host.example.com/vaultwarden( - 尽可能避免 URL 重写)

官方页面地址
管理页面
.env.template
src/config.rs
管理页面
第三方软件包
从(已更改的)文件中读取
容器镜像
通过 --env-file
JSON
子目录托管
禁用邀请
禁用新用户注册
启用管理页面
禁用管理令牌
翻译管理页面
SMTP 配置
启用 WebSocket 通知
启用移动客户端推送通知
启用 U2F 和 FIDO2 WebAuthn 身份验证
启用 YubiKey OTP 身份验证
日志记录
其他配置
更改持久数据位置
更改 API 请求大小限制
更改 worker 数量
翻译电子邮件模板
env_file
EnvironmentFile=
ENV_FILE 方式