利用koyeb免费自建bitwarden服务端
起因
最近收到了github发来的“两步验证(F2A)最后通牒”,说是5月4日之前还不开启F2A的话,就会限制github网页端的访问,并自动跳转到F2A的设置页面去。这就很烦,无奈只能去把F2A打开咯。
可以用于接收TOTP的程序有很多,官方给出的建议有1password、authy等等,还有开源的Free
OTP和FreeOTP以及国产程序“神锁离线版”等等,可以自己选择合适的产品。
不过对于博主个人而言,bitwarden本身的多平台支持、以及支持自建服务的几个属性,使之成为博主的不二选择。(关键是早就在用它存密码了,习惯而已)
项目
本博客使用的bitwarden服务端为rust编写的开源替代客户端vaultwarden,用 Rust 编写并与上游 Bitwarden 客户端,该项目是兼容的 Bitwarden 服务器 API 的替代实现*,非常适合运行官方资源密集型服务可能不理想的自托管部署。
部署
首先,注册一个koyeb,(如果你有其他可以部署docker的PaaS平台,你也可以自己看着弄)
之后,登陆你的koyeb:
接着,点击 create app +
来创建应用,并选择docker选项
在images栏填入 vaultwarden/server
,点击 next
、Advanced
、将端口从8000修改为80
此处为2023年4月7日更新内容
此前的教程内容部署出来的容器可以用,单koyeb每个月会自动重新部署容器,从而导致使用内置数据库的服务端丢失所有用户数据。故而今天琢磨了以下把永久保存数据库的方法给总结出来了,并在此写下
申请一个在线mysql数据库
网上有很多白嫖在线mysql数据库的平台,大部分还是比较稳妥可靠的,如果你实在还是不放心,那就干脆买服务器自建好了。博主这里选择使用db4free.net提供的免费数据库。
打开db4free,点击左侧菜单栏中的数据库一栏:
之后在新页面点击 马上建立你的免费MySQL账号 »
按钮
依次填入数据库名称、数据库用户名、数据库密码以及你的邮箱(此处可用临时邮箱)这样你就申请到了一个免费的mysql数据库。在接下来的文字中我将用[dbname]、[username]、[password]来分别代表你输入的数据库名、用户名和密码。
2023.11.19更新
经过反馈和确认,现在新建的数据库直接被koyeb中的vaultwarden调用会导致表创建失败暂时没去研究原因,偷个懒直接把创建好的空白数据库放上来。
使用步骤打开db4free自带的phpMyAdmin
输入数据库的帐号密码
点击你的数据库名称
点击导入
选择已创建好的空白数据库并导入:
至此你已经配置好了你的在线数据库,由于vaultwarden项目的设置,你需要将数据库的用户名、密码、数据库名重新排列成mysql数据库的链接形式来方便docker容器将其使用,即:
1 |
|
添加环境变量
接下来你只需要回到koyeb容器的创建页面,如果已经创建了的话,你只需要进入该项目的设置页面,找到 Environment variables
在其下创建如图的两个环境变量,其中 DATABASE_URL
的值为上面排列好的 mysql://[username]:[password]@db4free.net:3306/[dbname]
而 RUST_BACKTRACE
的值则为1。
之后的步骤没有区别,照做就行。
修改你的应用名称,也就是你koyeb默认生成的网站的前缀
点击 deploy
,等待程序状态变为healthy,即可正常使用
使用
打开bitwarden(手机、插件、pc客户端都行),在添加账户时点右上角设置,将你的获取的域名填入 服务器URL
选项中,保存即可。
自此你就可以使用完全自建,不用担心泄露问题的全平台密码管理器了,不管是安卓手机还是iphon亦或者谷歌内核的各个浏览器以及firefox浏览器等,均可直接自动填充密码。并且由于密码全都加密保存在你自建的koyeb容器中,也可以不用担心密码泄露问题。
总结
以上就是用koyeb搭建bitwarden服务端的全部流程,是不是非常无脑且快捷?有需要的话就赶紧去部署起来吧!
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!