引言
Bitwarden不用多解释了吧,这免费开源的密码库,多端同步,使用方便,爽的一批,那还不是1Password完美替代品是什么?你可以去Bitwarden注册一个账号,日常使用是足够的,就是他们的服务器在海外,有时候会非常慢。如果你手头有一台服务器,那么为什么不顺带搭建部署一个属于自己的私人密码库呢?但是部署Bitwarden可能需要的服务器性能要高一点。为了解决让小型服务器也能用上Bitwarden的问题,那么Vaultwarden(原名 Bitwarden_rs)它来了!
可以很方便的使用 Docker 自己部署,同时支持了高级版的 TOTP 等功能。
Vaultwarden 部署
首先安装 Docker 与 Docker Compose,参考这里。
Vaultwarden 安装
使用以下命令安装Vaultwarden
docker pull vaultwarden/server:latest
使用以下命令运行 Vaultwarden
docker run -d --name vaultwarden -v /bw-data/:/data/ -p 8880:80 vaultwarden/server:latest
或者你也可以使用以下命令配置是否允许注册,是否记录日志,是否开启通知
docker run -d --name vaultwarden \
-e SIGNUPS_ALLOWED=true \
-e WEBSOCKET_ENABLED=true \
-e LOG_FILE=/data/vaultwarden.log \
-p 8880:80 \
-p 3012:3012 \
-v /bw-data/:/data/ \
vaultwarden/server:latest
Vaultwarden运行的参数还有非常地多
docker run -d --name vaultwarden \
-e SIGNUPS_ALLOWED=false \
-e INVITATIONS_ALLOWED=false \
-e ADMIN_TOKEN=step2_generated_token \
-e ROCKET_TLS='{certs="/data/xxx.crt",key="/data/xxx.key"}' \
-e DOMAIN=https://bwh.vioe.cc/ \
-e LOG_FILE=/path/to/log \
-e LOG_LEVEL=warn -e EXTENDED_LOGGING=true \
-e DATA_FOLDER=/path/to/data/folder \
-p 443:80 \
-v /path/to/host/ssl/:/path/to/docker/ssl/
-v /path/to/host/data/folder:/path/to/docker/data/folder \
vaultwarden/server:latest
相关说明如下
SIGNUP_ALLOWED:是否允许注册
INVITATIONS_ALLOWED:是否允许组织邀请注册
ADMIN_TOKEN:用户管理界面 (/admin),可用于删除用户及邀请用户注册
ROCKET_TLS:ssl 证书信息,同时需要配置 -v /path/to/host/ssl/:/path/to/docker/ssl/ 卷,前者为宿主机 ssl 证书的位置,后者为容器证书位置
DOMAIN:域名
LOG_FILE、LOG_LEVEL、EXTENDED_LOGGING:日志保存文件路径以及日志等级定义
DATA_FOLDER:docker 容器数据保存文件夹(默认为 /data),除了定义这个文件夹之外,还可以定义附件、图标缓存、数据库等参数
DATABASE_URL:数据库路径
ATTACHMENT_FOLDER:附件路径
ICON_CACHE_FOLDER:图标缓存路径
Vaultwarden所有的数据都是在目录bw-data下
停止开启
使用以下命令可以停止Vaultwarden运行
docker stop vaultwarden
docker start vaultwarden
禁止注册
为了保证Vaultwarden服务器的稳定,你可以禁止Vaultwarden注册新用户(这一项可以放在最后,否则你自己都无法注册了)。
docker run -d --name vaultwarden \
-e SIGNUPS_ALLOWED=false \
-e WEBSOCKET_ENABLED=true \
-e LOG_FILE=/data/vaultwarden.log \
-p 8880:80 \
-p 3012:3012 \
-v /bw-data/:/data/ \
vaultwarden/server:latest
发送邮件
如果你的Vaultwarden是多用户使用的话,那么你可以配置一下SMTP发邮件了,参考如下
docker run -d --name vaultwarden \
-e SMTP_HOST=<smtp.domain.tld> \
-e SMTP_FROM=<vaultwarden@domain.tld> \
-e SMTP_PORT=587 \
-e SMTP_SSL=true \
-e SMTP_USERNAME=<username> \
-e SMTP_PASSWORD=<password> \
-v /bw-data/:/data/ \
-p 80:80 \
vaultwarden/server:latest
配置Https证书
设置域名
首先,将你的域名解析到Vaultwarden服务器IP地址
反向绑定
你可以使用Nginx等反向绑定域名,这里我们使用Docker平台上的Nginx反向绑定域名管理工具,操作简单方便
进入到系统,在SSL那一项添加你想要绑定的域名,输入你的域名DNS解析商的API,完成签发SSL证书
然后就是进入到系统点击添加绑定域名
添加你的域名,填写你的服务器IP地址和端口,这个端口就是刚刚我们安装Vaultwarden时设置的
在绑定域名SSL处选择你刚刚已经为你的域名申请成功SSL证书的域名
完成后,现在你就可以使用域名访问到 Vaultwarden 了
Vaultwarden使用
首次使用Vaultwarden,你需要先注册一个账号。
这个就是Vaultwarden的用户界面了,和Bitwarden_RS是一样的。
Vaultwarden支持各大浏览器扩展、手机APP和桌面客户端
Vaultwarden 升级
升级命令如下
# 重新拉取镜像
docker pull vaultwarden/server:latest
# 停止原容器
docker stop vaultwarden
#删除原容器
docker rm vaultwarden
# 重新运行 docker run 命令
docker run -d --name vaultwarden \
-e SIGNUPS_ALLOWED=false \
-e WEBSOCKET_ENABLED=true \
-e LOG_FILE=/data/vaultwarden.log \
-p 8880:80 \
-p 3012:3012 \
-v /bw-data/:/data/ \
vaultwarden/server:latest
# 查看镜像文件
docker image ls
# 删除原镜像文件,
docker image rm $ID
容器操作命令如下
# 启动容器
docker start $name
# 停止容器
docker stop $name
# 删除容器
docker rm $name
# 查看运行容器
docker ps -as
常用的相关的参考网站
docker官方文档:https://docs.docker.com/
docker compose在Github的地址:https://github.com/docker/compose/releases
vaultwarden在Github的地址:https://github.com/dani-garcia/vaultwarden
vaultwarden在docker hub的地址:https://hub.docker.com/r/vaultwarden/server
vaulwarden官方文档:https://github.com/dani-garcia/vaultwarden/wiki
vaultwarden官方文档中文翻译版:https://rs.ppgg.in/