1.配置概述
最后更新于
最后更新于
对应的
[译者注]:
某些设置只能通过环境变量配置,如管理页面中
Read-Only Config
部分的配置(如日志记录)通过管理页面修改配置后马上生效
若直接修改
config.json
文件,则需要重启 Vaultwarden 才能生效(因为只有启动时才会读取config.json
文件)
基本上有三种不同的方式配置 Vaultwarden:
设置环境变量
使用 ENV_FILE
以及
通过 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
来设置。
编译时,默认值通过 src/config.rs
进行硬编码
无需重新编译二进制文件。这些默认值可以通过配置 ENV_FILE
来更改
也可以通过设置环境变量(这将推翻 ENV_FILE
中的设置)来更改
最终用户(具有 /admin
面板访问权限)可以选择创建具有最高优先级的 config.json
确保将 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 重写)