从零搭建自己的密码管理器-Vaultwarden

Bitwarden是非常流行的密码管理器,Vaultwarden是使用Rust语言编写的开源的Bitwarden服务端API的替代实现。本文将利用本地树莓派Docker部署Vaultwarden+Cloudflared实现任意地点密码同步。

1.安装Docker

 

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update

 

 

2.配置Docker源

由于某些问题,国内拉取镜像有点问题,可创建/etc/docker/daemon.json文件写入如下内容:

{
   "registry-mirrors": [
   "https://docker.m.daocloud.io",
   "https://huecker.io",
   "https://dockerhub.timeweb.cloud",
   "https://noohub.ru",
  ]
}

重启docker使其生效

systemctl daemon-reload
systemctl restart docker

或者手动添加代理

mkdir /etc/systemd/system/docker.service.d/
vi /etc/systemd/system/docker.service.d/http-proxy.conf

写入(代理地址填自己的)

[Service]

Environment="HTTP_PROXY=http://192.168.3.180:1080"
Environment="HTTPS_PROXY=http://192.168.3.180:1080"
Environment="NO_PROXY=localhost,127.0.0.1"

重启Docker生效

systemctl daemon-reload
systemctl restart docker

 

3.配置Cloudflared

打开https://dash.cloudflare.com/ 创建cloudflare账号,根据Add a site | Cloudflare Fundamentals docsChange your domain nameservers to Cloudflare添加域名修改NS记录。

在首页点击Zero Trust→Networks→Tunnels→Create Tunnel→Cloudflared,然后Next

起一个名字,save tunnel

点击Docker,点击复制按钮

粘贴到命令行,不用执行,将看到eyJh开头的一大长疮字符,执行echo -n 'eyJhIjo......'  | base64 -d 省略号自己补全。将看到a、t、s和它们的键值保存备用。

4.配置Docker Compose配置文件

mkdir vault && cd vault
vim compose.yml

写入

此处内容需要回复后并刷新才能查看

启动容器

docker compose up -d && docker compose logs -f
#会看到启动日志,如果需要停止可使用
docker compose down

大功告成。  细心的朋友可能会发现compose.yml文件里写了ports映射8080端口给主机,这个是做什么用的呢?这个是给宿主机反向代理用的,家里的机器自签名HTTPS证书通过openresty反向代理访问速度更快,不用通过外部网络,cloudflared出问题了也不影响。

 

参考链接:

https://github.com/dani-garcia/vaultwarden/wiki/Proxy-examples

https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/configure-tunnels/local-management/configuration-file/

 

阅读剩余
THE END