爱极客专注分享-好玩的docker应用-源码分享

威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具

1. 前言

本方法适用于在服务器上部署,方法一样!

威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具

Bitwarden 是一款开源密码管理器,它会将所有密码加密存储在服务器上,它的工作方式与 LastPass、1Password 或 Dashlane 相同。

威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具

官方的版本搭建对服务器要求很高,搭建不容易,GitHub 上有人用 Rust 实现了 Bitwarden 服务器,项目叫 Vaultwarden,并且提供了 Docker 镜像,这个实现更进一步降低了对机器配置的要求,并且 Docker 镜像体积很小,部署非常方便。这个项目目前在 GitHub 也有 9.8k 的 star,非常受欢迎。

2. 操作环境

  • 服务器:我使用甲骨文免费的1H1G的小鸡做FRP内网穿透用(没有公网IP的痛啊),如果大家有公网ip可以不需要;没有vps,没有公网ip,大家可以参考其他内网穿透方案
  • 威联通NAS
  • 【非必需但建议】域名一枚,并做好解析到服务器上
  • 【非必需】提前安装好宝塔面板海外版本 aapanel,并安装好 Nginx
  • 【非必需本教程选用】安装好 Nginx Proxy Manager(相关教程

3. 搭建教程

废话不多说,直接上教程

3.1 解析域名到反代服务器

威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具

3.2.1 威联通NAS搭建教程

先拉取 vaultwarden 官方镜像,注意从dockerhub拉取

威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具
威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具

拉取后创建,并添加环境变量

  • DOMAIN=https://subdomain.yourdomain.com # 这是您希望与您的Vaultwarden实例关联的域名。
  • LOGIN_RATELIMIT_MAX_BURST=10 # 允许在一阵登录/两步验证尝试中的最大请求次数。
  • LOGIN_RATELIMIT_SECONDS=60 # 这是来自同一IP的登录请求之间的平均秒数,在Vaultwarden限制登录次数之前。
  • ADMIN_RATELIMIT_MAX_BURST=10 # 这与LOGIN_RATELIMIT_MAX_BURST相同,只争对admin面板。
  • ADMIN_RATELIMIT_SECONDS=60 # 这与LOGIN_RATELIMIT_SECONDS相同
  • ADMIN_SESSION_LIFETIME=20 # 会话持续时间
  • ADMIN_TOKEN=YourReallyStrongAdminTokenHere # 此值是Vaultwarden管理员面板的令牌(一种密码)。为了安全起见,这应该是一个长的随机字符串。如果未设置此值,则管理员面板将被禁用。建议openssl rand -base64 48 生成ADMIN_TOKEN确保安全
  • SENDS_ALLOWED=true # 此设置决定是否允许用户创建Bitwarden发送 – 一种凭证共享形式。
  • EMERGENCY_ACCESS_ALLOWED=true # 此设置控制用户是否可以启用紧急访问其账户的权限。例如,这样做可以在用户去世后,配偶可以访问密码库以获取账户凭证。可能的值:true / false。
  • WEB_VAULT_ENABLED=true # 此设置决定了网络保险库是否可访问。一旦您配置了您的账户和客户端,停止您的容器,然后将此值切换为false并重启Vaultwarden,可以用来防止未授权访问。可能的值:true/false。
  • SIGNUPS_ALLOWED=true # 此设置控制新用户是否可以在没有邀请的情况下注册账户。可能的值:true / false。
威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具

网络方面自行映射80端口,我这边设置成8090

威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具

持久化方面自行映射本地文件夹至 /data

威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具

至此vaultwarden创建完成,后续数据备份只需要备份本地文件夹

浏览器输入ip地址+端口能打开网页,说明安装成功了

威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具

3.2.2 服务器搭建教程

我直接扔一份docker-compose文件

version: '3'

services:
  vaultwarden:
    container_name: vaultwarden
    image: vaultwarden/server:latest
    restart: unless-stopped
    volumes:
      - ./data/:/data/
    ports:
      - 8080:80
    environment:
      - DOMAIN=https://subdomain.yourdomain.com # 这是您希望与您的Vaultwarden实例关联的域名。
      - LOGIN_RATELIMIT_MAX_BURST=10 # 允许在一阵登录/两步验证尝试中的最大请求次数。
      - LOGIN_RATELIMIT_SECONDS=60 # 这是来自同一IP的登录请求之间的平均秒数,在Vaultwarden限制登录次数之前。
      - ADMIN_RATELIMIT_MAX_BURST=10 # 这与LOGIN_RATELIMIT_MAX_BURST相同,只争对admin面板。
      - ADMIN_RATELIMIT_SECONDS=60 # 这与LOGIN_RATELIMIT_SECONDS相同
      - ADMIN_SESSION_LIFETIME=20 # 会话持续时间
      - ADMIN_TOKEN=YourReallyStrongAdminTokenHere # 此值是Vaultwarden管理员面板的令牌(一种密码)。为了安全起见,这应该是一个长的随机字符串。如果未设置此值,则管理员面板将被禁用。建议openssl rand -base64 48 生成ADMIN_TOKEN确保安全
      - SENDS_ALLOWED=true  # 此设置决定是否允许用户创建Bitwarden发送 - 一种凭证共享形式。
      - EMERGENCY_ACCESS_ALLOWED=true # 此设置控制用户是否可以启用紧急访问其账户的权限。例如,这样做可以在用户去世后,配偶可以访问密码库以获取账户凭证。可能的值:true / false。
      - WEB_VAULT_ENABLED=true # 此设置决定了网络保险库是否可访问。一旦您配置了您的账户和客户端,停止您的容器,然后将此值切换为false并重启Vaultwarden,可以用来防止未授权访问。可能的值:true/false。
      - SIGNUPS_ALLOWED=true # 此设置控制新用户是否可以在没有邀请的情况下注册账户。可能的值:true / false。

3.3 配置内网穿透

参考没有公网IP怎么办?一键部署FRP实现内网穿透!

6.1 利用 Nginx Proxy Manager

在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:域名一枚,并做好解析到服务器上域名购买、域名解析

威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具

之后,登陆 Nginx Proxy Manager(不会的看这个:安装 Nginx Proxy Manager相关教程))

注意:

Nginx Proxy Manager(以下简称 NPM)会用到 80443 端口,所以本机不能占用(比如原来就有 Nginx)

直接丢几张图:

威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具
威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具

注意填写对应的 域名IP端口,按文章来的话,应该是 8090

否则直接填 Vaultwarden 所在的服务器 IP 就行。

威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具

再次打开,勾选这些:

威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具

然后就可以用域名来安装访问了。

6.2 利用宝塔面板

发现还是有不少小伙伴习惯用宝塔面板,这边也贴一个宝塔面板的反代配置:

直接新建一个站点,不要数据库,不要 php,纯静态即可。

然后打开下面的配置,修改 Nginx 的配置。

威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具[威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具

代码如下:

location / {
  proxy_pass http://127.0.0.1:8090/;       # 注意改成你实际使用的端口
  rewrite ^/(.*)$ /$1 break;
  proxy_redirect off;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Upgrade-Insecure-Requests 1;
  proxy_set_header X-Forwarded-Proto https;
}

此方法对 90% 的反向代理都能生效,然后就可以用域名来安装访问了。

有同学可能会问,为什么不直接用宝塔自带的反向代理功能。

威联通docker部署Vaultwarden并通过frp内网穿透,10分钟搭建一个专属的本地密码管理工具

也可以,不过我自己之前遇到过当有多个网站需要反代的时候,在这边设置会报错的情况

所以后来就不用了,直接用上面的方法来操作了。

© 版权声明
THE END
喜欢就支持一下吧
点赞15赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容