相信身为开发者,总会在各种网站中注册账号,为了方面记忆可以使用同一套账号密码进行注册,自从前段时间学习通时间撞库后有些人已经开始疯狂改密码了,可是密码一多就很难记忆,最好找个地方存储账户信息

我曾经使用过手机便签、笔记软件,Edge的同步功能,甚至私有的GIT仓库来记密码,效果都不是很好,于是前段时间疯狂寻找开源项目,想要搭建自己的密码管理系统,终于找到了Bitwarden这个神仙

准备工作

  1. 需要有可以使用服务器以及可以使用的域名

  2. 了解并熟悉Docker的简单使用

  3. 了解并熟悉Nginx的使用

  4. 了解HTTPS

了解Bitwarden

https://bitwarden.com/

Bitwarden是一款开源的密码管理工具,可以直接访问他们的官网注册并使用他们的服务,将账号信息交给他们管理,也可以自行搭建服务,将账号密码存在自己的服务器上,供自己或者朋友进行使用

根据最近总结的经验来看,部署Bitwarden的方式大概总结了三种:

  1. 使用官方提供的的sh脚本进行安装,需要系统中安装好docker、docker-compse

这种方法我已经踩过坑了,首先的确是可以用的,但是执行安装脚本后启动服务,你会发现Docker中多了十多个容器,对于我这种强迫症来说接受不了,而且我的Docker中已经事先安装了Nginx并配置了网站的反向代理,会和官方提供的脚本中的nginx冲突导致运行失败,这个方案直接被pass

  1. 使用第三方维护的Docker镜像:Bitwarden_RS

https://hub.docker.com/r/bitwardenrs/server

这个是由第三方个人维护的整合好的bitwarden镜像,pull后可以直接运行并访问,这个镜像我也用了一段时间,这期间深深被bitwarden的功能折服,打算写一篇博客介绍给更多的人用,所以对这个镜像稍微了解一下,发现这个镜像已经不在维护了,但是功能可以正常使用,如果不介意的话可以使用,但不推荐

第三种方法就是我目前正在使用的方法,我会在下面介绍安装方法

快速部署Bitwarden

https://hub.docker.com/r/vaultwarden/server

注意:部署Bitwarden要求系统中安装了Docker和Nginx服务

推荐使用Vaultwarden镜像,他与第二种安装方案中的镜像是同一个作者,因docker镜像名称容易引人误会所以另开一个镜像,如果想快速安装Bitwarden使用下面这段命令就可以

# -p端口映射不多解释,-v绑定数据目录不多解释
docker run -d --name bw \
-p 8002:80 \
-v /opt/docker/bw/:/data/ \
vaultwarden/server:latest

然后通过服务器IP地址+端口号就可以访问服务了,如下所示

但是仅仅这样是用不了的,出于安全考虑Bitwarden要求必须使用https进行访问,否则报错

之前购买VPS的的博客中提过,我的域名是交给CloudFlare管理的,这里需要打开强制https功能,如果你没有这个条件的话需要用自己的域名申请一个SSL证书上传至服务器,然后配置Nginx,这里请百度

然后配置域名解析,将域名解析到你的服务器IP地址上,如下所示

然后编辑nginx的配置文件,配置Bitwarden的反向代理

server {
listen 80;
server_name bitwarden.hanzhe.site;
location / {
proxy_pass http://666.666.666.666:8002;
}
}

访问配置好的域名,就可以访问到Bitwarden网站了,强制https后注册登录都一切顺利,注册登录后在这个位置设置中文

之后就可以正常使用了,可以在存储密码后安装浏览器插件,设置远程地址后查看账号密码,或者使用密码填充

也可以GooglePlay商店或者百度下载手机端,同样设置服务器URL后登陆,进行添加查看账户信息,IOS也可以

https://bitwarden.hanzhe.site 这个就作为演示站供大家参考,已开放注册,信得过的话也可以联系我邀请你使用我私有的bitwarden

Bitwarden高级用法

在创建容器的时候可以指定很多环境变量,这里简单介绍几个

管理员访问密码,设置密码后可以访问管理页面
-e ADMIN_TOKEN=some_random_token_as_per_above_explanation \
是否允许注册,false为禁止之策
-e SIGNUPS_ALLOWED=false \
是否允许邀请注册,在禁止注册的情况下可以邀请某个指定的用户进行注册
-e INVITATIONS_ALLOWED=false \
是否直接在页面显示密码提示,不通过邮箱
-e SHOW_PASSWORD_HINT=false \

更多配置项请参照官方文档 https://github.com/dani-garcia/vaultwarden/wiki

使用Docker搭建自己的Bitwarden密码管理服务的更多相关文章

  1. Docker 搭建 etcd 集群及管理

    环境 host1 10.1.99.13 host2 10.1.99.14 host3 10.1.99.15 host4 10.1.99.12(用于测试添加删除节点) 初始化集群 host1 $ doc ...

  2. 使用Docker搭建consul集群+registrator实现服务自动注册。

    准备工作:10.173.16.83 master10.172.178.76 node110.171.19.139 node210.162.204.252 node3 一.安装consul-cluste ...

  3. 搭建ldap服务器及web管理服务--phpldapadmin

    系统版本:centos6 安装配置openldap: yum install openldap openldap-servers openldap-clients openldap-devel com ...

  4. Docker 搭建 etcd 集群

    阅读目录: 主机安装 集群搭建 API 操作 API 说明和 etcdctl 命令说明 etcd 是 CoreOS 团队发起的一个开源项目(Go 语言,其实很多这类项目都是 Go 语言实现的,只能说很 ...

  5. Docker 搭建开发环境

    本文介绍如何将Docker集成到开发环境,自动构建应用,并使容器拥有独立的内网IP为开发人员提供服务. 术语解释 Docker镜像:一个不可修改的"模板",每个代码版本对应一个镜像 ...

  6. docker快速搭建几个常用的第三方服务

    本次和大家分享的内容是使用docker快速搭建工作中常用的第三方的服务,对于有一些互联网背景的公司来说,以下几个服务都是很需要的:redis,rabbit,elasticsearch: 本篇涉及内容深 ...

  7. 基于docker搭建开源扫描器——伏羲

    基于docker搭建开源扫描器——伏羲 1.简介 项目地址 伏羲是一款开源的安全检测工具,适用于中小型企业对企业内部进行安全检测和资产统计. 功能一览: 基于插件的漏洞扫描功能(类似于巡风) 漏洞管理 ...

  8. Docker搭建RabbitMQ集群

    Docker搭建RabbitMQ集群 Docker安装 见官网 RabbitMQ镜像下载及配置 见此博文 集群搭建 首先,我们需要启动运行RabbitMQ docker run -d --hostna ...

  9. 使用docker搭建selenium grid 分布式环境

    本文章只做docker搭建selenium grid 分布式环境步骤说明,对于selenium grid中的参数.流程.原理等不做说明.selenium grid的详细情况可查看官方文档https:/ ...

随机推荐

  1. SpringMVC的文件上传下载,异常处理,拦截器的小总结

    文件的上传和下载 我们通常在访问网页时会使用到文件的上传与下载的功能,那么他是如何实现的呢? 1 下载: ResponseEntity :用于控制器方法的返回值类型,该控制器方法的返回值就是响应到浏览 ...

  2. redis的zset数据结构:跳表

    点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 文章不定期同步公众号,还有各种一线大厂面试原题.我的学习系列笔记. 广州这边封闭式管理好久了,今天终于周末可以出去溜溜了 什么是zset z ...

  3. Python求解线性规划——PuLP使用教程

    简洁是智慧的灵魂,冗长是肤浅的藻饰.--莎士比亚<哈姆雷特> 1 PuLP 库的安装 如果您使用的是 Anaconda[1] 的话(事实上我也更推荐这样做),需要先激活你想要安装的虚拟环境 ...

  4. vue 排错

    error The template root requires exactly one element vue/no-multiple-template-root ... 解决办法: .eslint ...

  5. SHCTF web题

    第一题:直接查看robots.txt,得到flag 第二题:他的题的意思通过get方式一个字符一个字符去猜如果对的话他下面的小方格就会亮起,用python写个脚本就过了 第三题:也是猜flag 解题方 ...

  6. 记一次百万行WPF项目代码的重构记录

    此前带领小组成员主导过一个百万行代码上位机项目的重构工作,分析项目中存在的问题做了些针对性的优化,整个重构工作持续了一年半之久. 主要针对以下问题: 1.产品型号太多导致代码工程的分支太多,维护时会产 ...

  7. 命令行参数 getopt模块

    getopt中的函数: getopt.getopt(sys.argv[1:], shortopts, longopts=[]) args指的是当前脚本接收的参数,它是一个列表,可以通过sys.argv ...

  8. 923. 3Sum With Multiplicity - LeetCode

    Question 923. 3Sum With Multiplicity Solution 题目大意: 给一个int数组A和一个目标值target,求满足下面两个条件的组合个数,其中i,j,k分别为数 ...

  9. CentOS自动同步时间

    安装ntpdate yum install ntpdate -y 测试是否正常 ntpdate cn.ntp.org.cn # 正常情况 [root@centos7 www]# ntpdate cn. ...

  10. Proxmox 5.4使用vgpu_unlock,为GTX1060开启vGPU支持

    本文介绍如何为GTX1060显卡开启vGPU功能.消费级显卡不支持nvidia GRID vGPU功能.在2021年初,疫情激发了黑客的创作热情,给出了一个vgpu_unlock的补丁,可以让消费级显 ...