使用 Docker 部署 Bitwarden 第三方开源后端 vaultwarden @ Wings            分类 软件
发布于 星期一, 一月 10 日, 2022 年
更新于 星期五, 一月 14 日, 2022 年

最近无聊, 搞搞密码管理器, 在自己的服务器上存密码. (好像还是第一次使用 Docker)

Bitwarden 是一个开源的密码管理器, 而 vaultwarden 是一个调用 Bitwarden API 实现的第三方服务端, 据说能够使用 Bitwarden 的付费内容, 而且资源占用更少.

为了方便, 这里使用 Docker 部署 vaultwarden.

安装 Docker CE (社区版)

一般来说都能够安装 Docker, 装不了升级一下内核(或者砸了服务器重买一个).

yum -y install docker-ce

直接用 root 比较方便, 因为 docker 运行也需要 root 权限组.

docker version

检查是否安装成功.

安装 Docker compose

Docker compose 是一个运行多个 Docker 容器的工具, 非常方便.

在 release 里下载对应的二进制文件, 然后拷贝到任意一个 bin 目录下, 给可执行权限就行了.

docker-compose version

检查是否安装成功.

部署 vaultwarden

在某个目录下新建文件 docker-compose.yml, 输入以下内容:

version: '3'
services:
vaultwarden:
	image: vaultwarden/server:latest
	restart: always
	ports:
	+ "3080:80"
	+ "3012:3012"
	environment:
	DOMAIN: 'https://bitwarden.example.com/'
	SIGNUPS_ALLOWED: 'true'
	WEBSOCKET_ENABLED: 'true'
	volumes:
	+ ./data:/data

解释一下, image 是镜像名, 后面指定版本, ports 是本机和 docker 的端口映射, 这里表示将 docker 的 80 端口映射到本机的 3080 端口, 将 docker 的 3012 端口映射到本机的 3012 端口(3012 是 Bitwarden 的 websocket 默认端口). 环境里的 WEBSOCKET_ENABLED 是设置启用 ws. DOMAIN 是部署的域名(可以通过这个域名访问网页端, 这个域名也是各个客户端链接到服务器的凭证). SIGNUPS_ALLOWED 是允许注册(相当于服务器部署后, 可以注册多个帐号, 每个帐号都可以保存各自的数据, 所以先要开放注册, 自己一个人用的话注册完了以后就可以关了). volumes 是将 docker 中的 /data 目录实际存储在 ./data (当前目录下的 data 文件夹).

然后启动容器, 在 docker-compose.yml 所在目录运行命令:

docker-compose up -d

Nginx 代理

Bitwarden 是存密码等重要信息的, 所以需要 SSL. 先给域名搞一个证书, 然后添加 Nginx 配置如下:

# Define the server IP and ports here.
upstream bitwardenrs-default { server 127.0.0.1:3080; }
upstream bitwardenrs-ws { server 127.0.0.1:3012; } 

# Redirect HTTP to HTTPS
server {
	listen 80;
	server_name bitwarden.example.com;
	return 301 https://$host$request_uri;
} 

server {
	listen 443 ssl http2;
	server_name bitwarden.example.com;

	# SSL
	ssl_certificate /etc/ssl/fullchain.pem;
	ssl_certificate_key /etc/ssl/privkey.pem;
	ssl_trusted_certificate /etc/ssl/chain.pem;

	client_max_body_size 128M;

	location / {
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header X-Forwarded-Proto $scheme;

	proxy_pass http://bitwardenrs-default;
	}

	location /notifications/hub/negotiate {
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header X-Forwarded-Proto $scheme;

	proxy_pass http://bitwardenrs-default;
	}

	location /notifications/hub {
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection $http_connection;
	proxy_set_header X-Real-IP $remote_addr;

	proxy_pass http://bitwardenrs-ws;
	}
}

把证书和服务器名称换一下就行了, 如果映射的端口不一样的话也记得换一下.


然后访问 bitwarden.example.com 就可以注册了使用了.

留下昵称和邮箱, 可在第一时间获悉回复通知哦~

2021 FLAG

  • 找个妹子
  • 进计科
  • XCPC拿块金牌
  • 补全算法知识, 整全板子
  • 学会Web开发相关知识
  • 在服务器上搭建电子书库
  • 写个游戏并上线
  • 能弹一首曲子
  • 写首完整的曲子
  • 练习悠悠球

个人简介

我叫 Wings, 来自江西上饶, 目前人在西安, 是西电的一名学生.

常以 WingsWingsZengWingsWings的ID在各大小网站上游走, 一般来说, Wings不是我 😔, WingsZeng 一定是我 😊.

热爱算法, 喜欢钻研各种计算机技术.

业余爱好广泛, 只要不是文化课基本上都感兴趣😏.

开发/项目经历

  1. Android游戏 小墨滴的复仇 (弃坑)
  2. Android游戏 Circle Run (弃坑)
  3. Windows游戏 Snague (可能弃坑了吧)
  4. Python后端 Fathy' (可能弃坑了吧)

to be continued

教育经历

时间 学历 学校
2008-2014 小学 上饶市第十二小学
2014-2017 初中 上饶市第四中学
2017-2020 高中 上饶市第一中学
2020-2024 本科 西安电子科技大学
to be continued

比赛/竞赛经历

太久远太小的记不到了…

  1. 2017 国学竞赛初赛江西 没有分数或排名 二乙
  2. 2018 NOIP提高 258 省二
  3. 2019 CSP-S江西专场 145 省二
  4. 2019 数学竞赛初赛 70 没排名 (复赛打铁qaq)
  5. 2020 Gitee|Python贪吃蛇魔改大赛 可能是第四? 二等奖
  6. 2020 西电ACM训练基地熊猫杯 第四 银牌
  7. 2020 西安三校微软学生俱乐部Hackathon 和二等奖最后一名差0.5分 三等奖
  8. 2020 西电星火杯 三等奖
  9. 2020 西电ACM新生赛 第九 金牌
  10. 2020 ICPC 亚洲区域赛 济南站 132名 铜牌
  11. 2020-2021 第二届全国大学生算法设计与编程挑战赛(冬季赛) 924名 铜牌 (别骂了别骂了)
  12. 2020 ICPC 亚洲区域赛 昆明站 打星
  13. 2020 ICPC Asia-East Continent Final 签完到溜 打铁
  14. 西电"智能星"第一届自动驾驶小车比赛 第五 优胜奖|极速奖 本来可以冠军的别骂了别骂了
  15. 2021团体程序设计天体赛(CCCC) 个人二等奖
  16. 2021 西电 miniL CTF 优胜奖
  17. 2021 西电ACM校赛 第9名 金牌
  18. 2021 西电数模校赛 二等奖
  19. 2021 第15届IEEE 第48名
  20. 2021 CCPC 桂林站 打星
  21. [2021 ICPC 沈阳 105名 真银尾]
  22. [2021 CCPC 哈尔滨 银牌]
  23. [2021 ICPC 南京 铜牌]

to be continued

爱好

技术

  • 算法
  • 独立游戏开发

游戏

  • Minecraft
  • Black Survival
  • I Wanna
  • Celeste
  • Life is Strange
  • Need for speed

运动

  • 篮球
  • 桌球
  • 乒乓球
  • 羽毛球
  • 慢跑

音乐

  • 吉他
  • 词曲
  • 流行

玩具

  • 魔方
    • 三阶速拧
    • 三阶盲拧
    • 高阶
  • yoyo球

追星

  • VAE
  • Benedict Cumberbatch