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

我曾经使用过手机便签、笔记软件,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. 项目完成 - 基于Django3.x版本 - 开发部署小结

    前言 最近因为政企部门的工作失误,导致我们的项目差点挂掉,客户意见很大,然后我们只能被动进入007加班状态,忙得嗷嗷叫,直到今天才勉强把项目改完交付,是时候写一个小结. 技术 因为前期需求不明确,数据 ...

  2. Halo 开源项目学习(三):注册与登录

    基本介绍 首次启动 Halo 项目时需要安装博客并注册用户信息,当博客安装完成后用户就可以根据注册的信息登录到管理员界面,下面我们分析一下整个过程中代码是如何执行的. 博客安装 项目启动成功后,我们可 ...

  3. 单列集合(Collection-Set)

    (部分) Set类特点: "无序"(输入顺序和存储顺序不一样) HashSet 底层是HashMap 关于不能有重复元素/对象 遇到的问题: 解决办法:重新类的相关方法 选择名字和 ...

  4. lab_1 清华大学ucore bootload启动ucore os(预备基础知识+实验过程)

    实验1 :bootload启动ucore os 1.0实验内容: lab1中包含一个bootloader和一个OS.这个bootloader可以切换到X86保护模式,能够读磁盘并加载ELF执行文件格式 ...

  5. 一文带你读懂什么是docker

    一 简介 1.了解Docker的前生LXC LXC为Linux Container的简写.一种轻量级的内核虚拟化技术,隔离进程和资源. Linux Container有点像chroot,提供了一个拥有 ...

  6. js算法-计算素数暴力算法

  7. 使用docker搭建jupyter notebook / jupyterlab

    说明 由于官方镜像实在是不怎么好用,所以我自己做了一个优化过的jupyter notebook的镜像 notebook_hub,使用我这个镜像搭建容器非常简单,下面就基于这个notebook_hub来 ...

  8. cloudwu/coroutine 源码分析

    1 与其它协程库使用对比 这个 C 协程库是云风(cloudwu) 写的,其接口风格与 Lua 协程类似,并且都是非对称 stackful 协程.这个是源代码中的示例: #include " ...

  9. MySQL - 数据库设计步骤

    需求分析:分析用户的需求,包括数据.功能和性能需求. 概念结构设计:主要采用E-R模型进行设计,包括画E-R图. 逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换,进行关系规范化 ...

  10. Java系列之运算符

    运算符 算术运算符:+ (加).-(减) .*(乘)./(除).%(模).++(自增) . --(自减) 赋值运算符:= 关系运算符:>.<.>= <= == != insta ...