在阿里云函数计算上部署Vaultwarden
00 分钟
2023-10-20
2024-1-6
type
status
date
slug
summary
tags
category
icon
password
🛡️
最近为了保障数据安全,把Edge和Chrome的密码转移到了Bitwarden中。虽然我相信Bitwarden不会跑路,但还是考虑起自己部署Bitwarden后端的计划。在不确定是否续购国内服务器(要备案才能方便地使用)的情况下,我发现了云函数这一方式也能快速安全地部署后端,反正阿里云也有三个月的免费试用,那就直接开始试试。

📚 准备

  • 一个阿里云账号
  • 一个域名(需要备案才能使用https)
  • 一个域名对应的SSL证书(没有的话可以去阿里云免费申请一张)
  • 一台能跑Docker的电脑或服务器

🏗️ 开始

在云函数上部署Bitwarden后端(Vaultwarden)是利用阿里云函数运行容器镜像,将数据存储到NAS,并通过https提供服务,可以做到无服务器、稳定且无需备案。

准备容器镜像

由于云函数需要使用Docker镜像,同时仅支持在阿里云容器镜像服务(ACR)中的镜像,因此需要将用到的镜像上传到ACR中。
  1. 开通ACR https://www.aliyun.com/product/acr 并 设置Registry密码
  1. 拉取Vaultwarden镜像到本地Docker仓库
  1. 到ACR中创建命名空间和镜像仓库,注意:镜像仓库与云函数地域要相同,如都位于杭州/深圳
  1. 根据ACR指引登录到Docker并将本地Vaultwarden镜像推送到ACR,可以参考 阿里镜像容器服务ACR的镜像推送和拉取_获取阿里云镜像仓库中镜像的tag_PerDrix?的博客-CSDN博客
  1. 到ACR仓库中检查镜像是否存在且正确

创建云函数服务和函数

  1. 前往 https://www.aliyun.com/product/fc 开通云函数FC服务
  1. 进入左侧服务与函数界面创建服务以及函数
  1. 首先在顶部选择合适的地区,随后点击创建服务,第一次创建需要同时创建云函数角色,保持默认即可。注意:创建服务时,点击高级选项,将允许访问VPC(内网资源)改为是
  1. 创建服务完成后,会自动进入服务界面,此时点击左上角的创建函数来创建函数,创建函数设置如下:
    1. 使用容器镜像构建
    2. Web Server模式勾选为“是”
    3. 请求处理程序类型选择“处理http请求”
    4. 镜像配置选择在上一部分中上传的镜像,如果没有可选,请确认镜像仓库与云函数是否在同一地域
    5. 监听端口为80
    6. 高级配置
      1. 不使用GPU
      2. 规格方案:0.1vCPU,128MB内存,单人使用完全足够,运行流畅,成本非常低,还可以防止他人访问造成大量损失。
      3. 其余保持默认即可
    7. 环境变量
      1. 配置管理员密码,可以对服务进行管理,变量名为 ADMIN_TOKEN,值为管理员密码,推荐根据Vaultwarden Wiki配置密码哈希以保障安全,具体见 Enabling admin page · dani-garcia/vaultwarden Wiki (github.com)
      2. 配置SQLite WAL禁用,变量名为 ENABLE_DB_WAL ,值为 false
      3. 提前配置NAS挂载路径,变量名为 DATA_FOLDER ,值为 /mnt/data
    8. 确认无误后,点击创建即可完成函数创建。
  1. 回到服务详情,点击配置/编辑,为服务配置VPC和NAS
    1. 转到网络配置,将允许访问VPC改为是,配置方式为自动 ,等待配置完成即可
    2. 转到存储配置,将挂载NAS文件系统改为启用,配置方式为自动 ,函数本地目录为上面环境变量 DATA_FOLDER 的值,等待配置完成即可
    3. 点击页面最下方保存
  1. 此时,云函数已经配置完成,理论上已经可以访问,接下来配置自己的域名和证书
  1. 回到云函数控制台,在左侧高级功能中选择域名管理并进入,根据提示绑定域名并配置证书即可
  1. 访问 你的域名/admin 前往Vaultwarden管理后台,设置你的服务后端,建议关闭图标缓存,直接使用Bitwarden官方服务器,可以节省成本。其余设置自己根据需要取舍即可,建议在自己注册完账户之后关闭新用户注册
  1. 访问 你的域名 即可进入网页版密码库,注册你的账号,导入你的数据,配置各种信息即可。
  1. 此时你已经是高级用户,可以使用密码附件、密码检查、密码泄露报告等高级功能,部署大功告成!

使用

上述步骤全部完成后,可以在各平台的Bitwarden客户端上以自托管身份登录,使用你自己部署的后端,将数据控制在自己手中,不过在添加自部署的时候记得点击高级,把图标服务器填成 https://icons.bitwarden.net 来享受官方的图标服务器!🤣

📎 参考文章

💡
文章内容有较强的时效性,请根据实际情况进行相应调整,如有相关问题也可联系作者,或许能给你提供一点帮助!