赞
踩
转载自-> Bitwarden 服务端搭建记录 https://10101.io/2019/11/24/self-hosted-bitwarden
之前在文章写在使用 Bitwarden 俩月后分享了自己使用 Bitwarden 的体验,也说到了 Bitwarden 可以搭建在自己的服务器上,但是由于官方的 docker 对于服务器的要求比较高,所以一直没有尝试。
不过评论区中有朋友提到了 bitwarden_rs,非官方的镜像,更加的轻量,所以决定试一试。本文为在 VPS 上的搭建记录,更多内容可以参考 wiki。
# 1. 执行官方的安装脚本
wget -qO- get.docker.com | bash
# 2. 检查安装结果
docker version
# 3. 启动 Docker
systemctl start docker
# 4. 查看 Docker 启动状态(绿色 active)
systemctl status docker
# 5. 允许 Docker 自启动
systemctl enable docker
不进行自定义,不需要域名,快速搭建一个 Bitwarden 后端
# 1. 拉取 bitwarden_rs 镜像
docker pull bitwardenrs/server:latest
# 2. 运行容器
docker run -d --name bitwarden -v /bw-data/:/data/ -p 80:80 bitwardenrs/server:latest
自定义一些参数,加入 HTTPS 支持等。
# 1. 拉取 bitwarden_rs 镜像 docker pull bitwardenrs/server:latest # 2. 生成一个 admin 用户管理页面的 token openssl rand -base64 48 # 3. 生成 ssl 证书,以启用 https,推荐使用 acme.sh 免费申请及自动续签 # > 3.1 下载并执行 acme.sh 脚本 curl https://get.acme.sh | sh # > 3.2 生成证书,这只是一种方式,其他方式可以自行搜索 apt install socat # debian 系为例 acme.sh --issue -d yourdomain.com --standalone # > 3.3 将生成的证书拷贝安装到指定文件夹 acme.sh --installcert -d yourdomain.com \ --key-file /path/to/yourdomain.com.key \ --fullchain-file /path/to/fullchain.cer \ # 4. 运行 bitwarden_rs 容器 docker run -d --name bitwarden \ -e SIGNUPS_ALLOWED=false \ -e INVITATIONS_ALLOWED=false \ -e ADMIN_TOKEN=step2_generated_token \ -e ROCKET_TLS='{certs="/path/to/docker/ssl/fullchain.cer",key="/path/to/docker/ssl/yourdomain.com.key"}' \ -e DOMAIN=https://yourdomain.com \ -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 \ bitwardenrs/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
:图标缓存路径以上是我自己觉得需要的一些配置,更多参数可参考官方 Wiki。
示例:
docker run -d --name bitwarden -e SIGNUPS_ALLOWED=false -e INVITATIONS_ALLOWED=false -e ADMIN_TOKEN=bTVsf7Hj99HPxECRPOL9U70bP0Iy5lXmbbJVP2tvwDszB8CClv+MD3TT6mSJTa4L -e ROCKET_TLS='{certs="/ssl/bw.withdewhua.space/fullchain.cer",key="/ssl/bw.withdewhua.space/bw.withdewhua.space.key"}' -e DOMAIN=https://bw.withdewhua.space -e LOG_FILE=/data/bitwarden.warn.log -e LOG_LEVEL=warn -e EXTENDED_LOGGING=true -p 443:80 -v /bw-data/:/data/ -v /usr/local/nginx/conf/ssl/:/ssl/ bitwardenrs/server:latest
# $name 为 docker run 中定义的 name
# 启动容器
docker start $name
# 停止容器
docker stop $name
# 删除容器
docker rm $name
# 查看运行容器
docker ps -as
# 1. 重新拉取镜像
docker pull bitwardenrs/server:latest
# 2. 停止、删除原容器
docker stop bitwarden
docker rm bitwarden
# 3. 重新运行 docker run 命令
# 4. 查看镜像文件
docker image ls
# 5. 删除原镜像文件, $ID 在 step4 中可以看到
docker image rm $ID
使用方法就讲下Chrome插件的吧,其他的用法都是类似的。
弄好之后稍微体验了下,直接从 Bitwarden 官方导出然后导入到自己服务端,整个过程还是很容易的。目前体验下来来说感觉还是非常舒服的,主要说几点吧:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。