1.构建二进制
对应的官方页面地址
这个页面主要是给那些对 Vaultwarden 开发感兴趣,或者有特殊原因想要构建自己的二进制的用户。
普通用户应该使用从基于 Alpine 的 Docker 镜像中提取的预构建二进制文件,通过 Docker 部署,或者寻找第三方包。
依赖
Rust stable(强烈建议使用 rustup) ⚠️ 最低支持 Rust 版本 (MSRV) 策略是 N-2,这意味着如果当前 Rust 版本是 v1.67,我们支持使用 v1.65 构建。在基于 Debian 的发行版上,请安装以下包:
build-essential、git,这些通用包可确保构建能正常进行OpenSSL(应在路径中是可用的,请参阅 openssl crate 文档)。在基于 Debian 的发行版上,需要安装pkg-config和libssl-dev对于基于 Debian 发行版上的 SQLite3 后端,需要安装
libsqlite3-dev对于基于 Debian 发行版上的 MySQL 后端,需要安装
libmariadb-dev-compat和libmariadb-dev对于基于 Debian 发行版上的 PostgreSQL 后端,需要安装
libpq-dev和pkg-configNodeJS(仅当编译网页密码库时使用。使用预构建的二进制,通过系统的包管理器安装)或 nodesource 二进制发行版。备注:构建 web-vault 当前要求 NodeJS v16 和 NPM v8.11
运行/编译
所有后端
SQLite 后端
MySQL 后端
PostgreSQL 后端
运行后,通过 http://localhost:8000 访问服务器。
注意:一个先前的话题表明由于 Rust 编译器和 LLVM 之间存在不兼容,导致编译可能会因段错误而失败。作为解决方法,可以使用较旧版本的编译器,例如 cargo +nightly-2019-08-27 build --features yourbackend --release
安装 web-vault
可以从 dani-garcia/bw_web_builds 下载网页密码库的编译版本。
如果您希望手动编译它,请遵循如下的步骤:
新的(简单的方式)
克隆 dani-garcia/bw_web_builds git 库:
该脚本要求您输入要构建的 web-vault 的标签或分支。main 分支是 bitwarden/clients 存储库的过期镜像,尚未打补丁,因此与 Vaultwarden 不兼容。
旧的(更手动的方式)
1、克隆 bitwarden/clients git 库,并检查最新的发行标签(例如 v2022.6.0):
2、根据 apply_patches script 中的说明修补资源中的所有镜像
3、从 dani-garcia/bw_web_builds 下载补丁文件并将其复制到 web-vault 文件夹。补丁文件版本(假设网页密码库版本为 vXXXX.Y.Z)的选择:
如果有版本为
vXXXX.Y.Z的补丁,则使用该版本否则,选择小于
vXXXX.Y.Z的最大的那一个版本
4、应用补丁:
5、然后,构建密码库:
可能会要求您运行 npm audit fix 以修复漏洞。这将自动尝试将包升级到较新的版本,该版本可能不兼容并破坏网页密码库功能。如果知道自己在做什么,请自行承担风险。顺便一提,我们会在自己的发行版中使用它!
6、最后将 build 文件夹的内容复制到目标文件夹中:
如果与
cargo run --release一起运行,则目标文件夹为vaultwarden/web-vault。如果直接运行已编译的二进制,则它位于二进制旁,为
vaultwarden/target/release/web-vault。
配置
可用的配置选项记录在默认的 .env.template 文件中,可以通过在该文件中取消注释所需的选项或设置它们各自的环境变量来对其进行修改。有关可用的主要配置选项,请参见本 wiki 的配置章节。
环境变量将覆盖 .env.template 文件中设置的值。
有关部署的更多信息
如何为 SQLite 后端重建数据库模式(面向开发人员)
使用 cargo 安装 diesel_cli:
确保在 .env 文件中包含正确的数据库路径。
如果要修改模式,请使用以下命令创建新迁移:
修改 *.sql 文件,确保在 down.sql 文件中还原了所有更改。
应用迁移并保存生成的模式,如下所示:
如何从 SQLite 后端迁移到 MySQL 后端(面向开发人员)
如果要从 SQLite 迁移,请参考使用 MariaDB (MySQL) 后端。
如何从 SQLite 后端迁移到 PostgreSQL 后端(面向开发人员)
如果要从 SQLite 迁移,请参考使用 PostgreSQL 后端。
最后更新于