2分钟
如何构建和运行Vaultwarden
前言
Vaultwarden 是一个用于本地搭建 Bitwarden 服务器的第三方 Docker 项目 Bitwarden是一款自由且开源的密码管理服务,用户可在加密的保管库中存储敏感信息(例如网站登录凭据)
因为github现在要求contributor必须开启2FA验证,但是我又不想用1Password之类的付费服务,正好研究下怎样自己托管一个密码管理服务
我这里使用的Linux发行版是Debian12
构建
配置构建环境
配置rust环境,这里因为是国内云服务所以需要用代理
首先安装rustup,这里参考这个repo
-
安装所需依赖(sqlite3后端)
sudo apt install curl build-essential gcc make libssl-dev pkg-config libsqlite3-dev
-
下载脚本
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf > rust.sh && chmod +x rust.sh
-
替换下载源
sed -i 's/${RUSTUP_UPDATE_ROOT:-https:\/\/static.rust-lang.org\/rustup}/https:\/\/mirrors.ustc.edu.cn\/rust-static\/rustup/g' rust.sh
-
设置环境变量,加速rustup的下载
这里我使用的是fish shell,编辑配置目录的config.fish并添加以下两行
set -gx RUSTUP_DIST_SERVER "https://mirrors.ustc.edu.cn/rust-static" set -gx RUSTUP_UPDATE_ROOT "https://mirrors.ustc.edu.cn/rust-static/rustup"
-
运行安装脚本
./rust.sh
之后一路回车
编译安装
-
首先拉取仓库
git clone https://githubfast.com/dani-garcia/vaultwarden.git
-
配置cargo国内镜像源
看这个,修改cargo.toml,这里不再赘述
-
构建后端
cargo build --features sqlite --release
安装
sudo install -Dm755 ./target/release/vaultwarden /usr/bin/vaultwarden
配置
-
创建vaultwarden用户
sudo useradd -r -U -s /usr/sbin/nologin vaultwarden
-
创建文件夹,设置权限
sudo mkdir -p /var/lib/vaultwarden sudo chown -R vaultwarden:vaultwarden /var/lib/vaultwarden sudo chmod 700 /var/lib/vaultwarden
-
创建
.service
文件,使用systemd功能/etc/systemd/system/vaultwarden.service
[Unit] Description=Bitwarden Server (Rust Edition) Documentation=https://github.com/dani-garcia/vaultwarden # Only sqlite After=network.target [Service] User=vaultwarden Group=vaultwarden # Use an environment file for configuration. EnvironmentFile=/etc/vaultwarden.env # The location of the compiled binary ExecStart=/usr/bin/vaultwarden # Set reasonable connection and process limits LimitNOFILE=1048576 LimitNPROC=64 # Isolate vaultwarden from the rest of the system PrivateTmp=true PrivateDevices=true ProtectHome=true ProtectSystem=strict # Only allow writes to the following directory and set it to the working directory (user and password data are stored here) WorkingDirectory=/var/lib/vaultwarden ReadWritePaths=/var/lib/vaultwarden [Install] WantedBy=multi-user.target
-
编辑配置文件,可以参考这个
/etc/vaultwarden.env
DATA_FOLDER=/var/lib/vaultwarden # 前端 WEB_VAULT_FOLDER=/var/lib/web-vault WEB_VAULT_ENABLED=false DOMAIN=https://<你的域名> SIGNUPS_ALLOWED=true
-
配置前端(web vault) 可选
需要设置
WEB_VAULT_ENABLED=true
我这边因为备案原因打不开,就直接用插件不用前端了wget https://gh-proxy.com/https://github.com/dani-garcia/bw_web_builds/releases/download/v2024.6.2b/bw_web_v2024.6.2b.tar.gz sudo tar -zxvf ./bw_web_v2024.6.2b.tar.gz -C /var/lib/
运行
启用systemd服务
sudo systemctl daemon-reload
sudo systemctl enable --now vaultwarden.service
完工
不知道为什么我使用域名没法登录,只能直接使用ip,可能是有什么地方没配好(我不是很想用反代) 使用浏览器插件或者是客户端登录使用即可