前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用非 Docker 方案在腾讯云轻量应用服务器上搭建密码管理软件 Vaultwarden (Bitwarden_rs)

使用非 Docker 方案在腾讯云轻量应用服务器上搭建密码管理软件 Vaultwarden (Bitwarden_rs)

作者头像
iks
发布于 2022-05-03 06:51:06
发布于 2022-05-03 06:51:06
2.3K0
举报
文章被收录于专栏:Lighthouse RouterLighthouse Router

前言

Bitwarden 是一款自由且开源的密码管理服务,用户可在加密的保管库中存储敏感信息(例如网站登录凭据)。Bitwarden 平台提供有多种客户端应用程序,包括网页用户界面、桌面应用,浏览器扩展、移动应用以及命令行界面。Bitwarden 作为一款商业自由软件,其开发公司提供云端托管服务 (bitwarden.com),同时为广大开源社区提供自行部署的解决方案。

Vaultwarden 原名 Bitwarden_rs,自 v2.21.0 开始更名为 Vaultwarden。Bitwarden 原始服务端使用 C# 编写,部署困难,且要求 MSSQL 等商业软件,运行需要 2GB 以上的内存;而 Vaultwarden 是一个使用 Rust 编写的非官方 Bitwarden 服务器实现,它与官方 Bitwarden 客户端兼容,运行 Vaultwarden 时只需要 10M 内存,可以说对硬件基本没有要求,对于不希望使用官方的占用大量资源的自托管部署而言,它是理想的选择。

Vaultwarden 除不支持官方企业版的部分功能(如事件日志、目录同步以及 SSO 登录)外,其他大部分功能均免费支持。并跟随官方版本保持及时更新。

Vaultwarden 实现了 Bitwarden API 所需的大部分功能,因此桌面端、移动端、浏览器扩展等客户端均可直接使用 Bitwarden 官方的客户端应用程序。

Vaultwarden 仓库推荐的安装方式均为直接使用 Docker 部署,本文将介绍一种使用非 Docker 方式、直接在系统上部署 Vaultwarden 的方法。16MB 左右的内存占用,再配合 MySQL 替代默认的 SQLite 作为数据存储形式可以将其“功耗”降到最低。

一、准备工作

1.1 服务器和系统选用

由于 Vaultwarden 运行时几乎不消耗系统资源,因此可以选用任意型号的轻量应用服务器;服务器系统建议选择 Ubuntu 18.04 或更新版本以及 Debian 10 或更新版本的 Linux 发行版,使用 CentOS 似乎会因依赖软件包版本问题而出现未知的错误。

此外,由于部署 Vaultwarden 不会对现有系统环境造成破坏性影响,在已经有网站业务的服务器上部署 Vaultwarden 也是一个不错的选择。

1.2 环境配置

1.2.1 软件包及依赖配置

依次执行以下命令以更新软件包信息、安装必要的软件包及开发工具包:

代码语言:shell
AI代码解释
复制
apt update -y
apt install git nano curl wget htop pkg-config openssl libssl1.1 libssl-dev -y
apt install build-essential -y
be-install
be-install

1.2.2 Rust 环境配置

执行 curl https://sh.rustup.rs -sSf | sh 以配置 Rust 环境。(国内可能较慢)

rust-install
rust-install

出现 Rust is installed now. Great! 即代表安装完成。

依次执行以下命令以配置 cargo 命令的环境变量:

代码语言:shell
AI代码解释
复制
echo 'export PATH=~/.cargo/bin:$PATH' >> ~/.bashrc
export PATH=~/.cargo/bin:$PATH 
which rustc
rustc-install
rustc-install

若返回 /root/.cargo/bin/rustc 则代表完成 Rust 环境的配置。

二、编译 Vaultwarden

执行 git clone https://github.com/dani-garcia/vaultwarden && cd vaultwarden 以拉取 Vaultwarden 储存库(国内可能较慢):

vw-pull
vw-pull

执行 cargo clean && cargo build --features mysql --release 以启动 Vaultwarden 的编译。

其中,mysql 可以为与 sqlitepostgresql 三者的任意组合,选择编译 mysqlpostgresql 时,系统必须安装了 MySQL 或 PostgreSQL,否则将提示:

代码语言:shell
AI代码解释
复制
linking with `cc` failed: exit status: 1
...
= note: /usr/bin/ld: cannot find -lmysqlclient
          collect2: error: ld returned 1 exit status

编译需要 3GB 左右的内存,内存不足的可以调整虚拟内存,虚拟内存建议空闲 2GB 左右;编译耗时较久,LemonBench 跑分在 800 左右的单核服务器编译耗时 28 分 54 秒。

cpmdone
cpmdone

三、安装 Vaultwarden

3.1 移动 Vaultwarden 二进制文件

依次执行以下命令:

代码语言:shell
AI代码解释
复制
cp target/release/vaultwarden /usr/bin/vaultwarden
chmod +x /usr/bin/vaultwarden

以将 Vaultwarden 二进制文件置入系统可执行目录并赋予执行权限。

3.2 配置 Vaultwarden 专用用户

依次执行以下命令:

代码语言:shell
AI代码解释
复制
useradd -s /sbin/nologin -M vaultwarden
mkdir -p /var/lib/vaultwarden/data
chown -R vaultwarden:vaultwarden /var/lib/vaultwarden/

3.3 部署 Vaultwarden Web UI

依次执行以下命令:

代码语言:shell
AI代码解释
复制
wget https://github.com/dani-garcia/bw_web_builds/releases/download/v2.28.0/bw_web_v2.28.0.tar.gz
tar -xf bw_web_v2.28.0.tar.gz -C /var/lib/vaultwarden/

其中 v2.28.0 为写作时的版本号,获取地址为 https://github.com/dani-garcia/bw_web_builds/releases/latest ,请保持最新。

3.4 编写 Vaultwarden 配置文件

执行 touch /etc/vaultwarden.env 并写入以下内容:

代码语言:text
AI代码解释
复制
DATA_FOLDER=/var/lib/vaultwarden/data/
DATABASE_URL=mysql://[数据库用户名]:[数据库密码]@127.0.0.1:3306/[数据库名]
IP_HEADER=X-Real-IP
WEB_VAULT_FOLDER=/var/lib/vaultwarden/web-vault/
WEB_VAULT_ENABLED=true
ADMIN_TOKEN=[base64码]
DOMAIN=https://vaultwarden.iks.moe

其中,[数据库密码]MySQL 数据库用户名,[数据库密码] 为 MySQL 数据库用户的密码,[数据库名] 为 MySQL 数据名,此三者均须提前创建;127.0.0.1 不得填写为 localhost[base64码] 执行 openssl rand -base64 48 以得到,https://vaultwarden.iks.moe 为你的域名,协议头必须为 https://

b64
b64
simple-env
simple-env

3.5 编写 Vaultwarden SystemD 文件

执行 touch /etc/systemd/system/vaultwarden.service 并写入以下内容:

代码语言:text
AI代码解释
复制
[Unit]
Description=Vaultwarden Server
Documentation=https://github.com/dani-garcia/vaultwarden

# 当你使用 SQLite 时,请取消下一行的注释
# After=network.target

# 当你使用 MariaDB 时,请取消下两行的注释
# After=network.target mariadb.service
# Requires=mariadb.service

# 当你使用 MySQL 时,请取消下两行的注释
# After=network.target mysqld.service
# Requires=mysqld.service

# 当你使用 PostgreSQL 时,请取消下两行的注释
# After=network.target postgresql.service
# Requires=postgresql.service

[Service]
User=vaultwarden
Group=vaultwarden
EnvironmentFile=/etc/vaultwarden.env
ExecStart=/usr/bin/vaultwarden
LimitNOFILE=1048576
LimitNPROC=64
PrivateTmp=true
PrivateDevices=true
ProtectHome=true
ProtectSystem=strict
WorkingDirectory=/var/lib/vaultwarden
ReadWriteDirectories=/var/lib/vaultwarden
AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

删去被注释的行,最终配置如图:

sdc
sdc

3.6 启动 Vaultwarden

依次执行以下命令:

代码语言:shell
AI代码解释
复制
systemctl enable --now vaultwarden.service
systemctl start vaultwarden.service
systemctl status vaultwarden.service

若正常启动,则如下图提示:

st-img
st-img

四、使用 Nginx 反向代理 Vaultwarden

本文以宝塔面板为例,其他环境与此操作相同。

4.1 新建站点

新建一个站点,域名填写步骤 3.4 中的域名,配置好 SSL 证书

bt-newsite
bt-newsite

4.2 配置反向代理

名称随意,目标 URL 为 http://127.0.0.1:8000,其他默认。

image-20220503012246612
image-20220503012246612

供非宝塔用户的 nginx 反向代理配置:

代码语言:c++
AI代码解释
复制
location /
{
    proxy_pass http://127.0.0.1:8000;
    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 REMOTE-HOST $remote_addr;
    add_header Cache-Control no-cache;
}

五、使用

访问域名,单击 Create Account 开始密码管理的第一步。

mainpage
mainpage

六、Vaultwarden 后续更新

重做步骤二、步骤 3.1, 3.3 并执行 systemctl restart vaultwarden.service 即可。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用非 Docker 方案在腾讯云轻量应用服务器上搭建密码管理软件 Vaultwarden (Bitwarden_rs)
Bitwarden 是一款自由且开源的密码管理服务,用户可在加密的保管库中存储敏感信息(例如网站登录凭据)。Bitwarden 平台提供有多种客户端应用程序,包括网页用户界面、桌面应用,浏览器扩展、移动应用以及命令行界面。Bitwarden 作为一款商业自由软件,其开发公司提供云端托管服务 (bitwarden.com),同时为广大开源社区提供自行部署的解决方案。
Nyarime
2022/05/04
1.9K0
使用非 Docker 方案在腾讯云轻量应用服务器上搭建密码管理软件 Vaultwarden (Bitwarden_rs)
debian10编译安装Bitwarden_rs 自建自托管的密码服务器
注意:这里我为了方便维护和管理使用的是sqlite数据库。因为就我自己用,没必要上mysql。而且我想这种东西就算你开放给别人用,也要别人敢用你的服务。。
暮城
2022/02/23
7880
debian10编译安装Bitwarden_rs 自建自托管的密码服务器
Docker搭建Bitwarden密码存储服务器
Docker安装:https://docs.docker.com/engine/install/centos/ Docker compose安装:https://docs.docker.com/compose/install/
行 者
2023/10/20
1.6K0
Docker部署Vaultwarden(Bitwarden_RS)
最近又有超星学习通的数据库被脱裤的消息,涉及了1.6亿条个人信息,又是一次密码大泄露,所以我也开始考虑使用密码管理器了。
SakuraRain
2022/06/22
3.4K0
[技术向] 用Docker自建 Vaultwarden (Bitwarden_rs)
Bitwarden是一个免费、自由且开源的的密码管理器,服务端也完全开源,可以自己搭建。 本文将咱自建bitwarden的过程记录下来。
Nyarime
2021/12/14
13K3
[技术向] 用Docker自建 Vaultwarden (Bitwarden_rs)
在群晖NAS中通过docker安装密码管理器bitwarden
密码越来越多,网上,网下的,重要的,不重要的,如果每一个密码都设定不一样的,哪怕是大罗金仙也记不清楚了,所以,密码管理器就出现了,一个超级复杂的密码保护其他的所有密码——免费的密码管理器bitwarden就是这个领域的佼佼者,它的功能有账号密码管理、自动生成密码、导出密码、自动填充密码等等,简单而又实用。bitwarden搭配上一个永不关机的NAS则更是绝配,实现了数据本地化,使用实时化,而且功耗非常低。这里就介绍在群晖NAS上怎么通过docker实现本地部署bitwarden,这里有一个前置条件,那就是NAS要安装SSL证书,可以通过HTTPS进行加密访问。
IT小马哥
2024/09/11
8210
在群晖NAS中通过docker安装密码管理器bitwarden
【好玩儿的Docker项目】2023重制版本!10分钟搭建一个专属的密码管理工具——Vaultwarden
之前的教程:【保姆级教程】利用宝塔面板 + Docker 搭建一个优秀的密码管理器 ——Bitwarden
二十五画生
2023/11/28
2.2K0
【好玩儿的Docker项目】2023重制版本!10分钟搭建一个专属的密码管理工具——Vaultwarden
使用bitwarden_rs搭建并使用自己的bitwarden密码管理器
一直在使用的密码管理软件Lastpass将于2021年3月开始调整免费账户的使用策略,免费账户只能在移动端和电脑端选择一个类型使用,本来海天还想升级或者看一下1password的,但后发现很多人都推荐使用bitwarden这款开源的密码管理软件。
子润先生
2021/06/24
4.9K0
宝塔面板搭建密码管理bitwarden
Bitwarden 是一款开源密码管理器,它会将所有密码加密存储在服务器上,它的工作方式与 LastPass、1Password 或 Dashlane 相同。 官方的版本搭建对服务器要求很高,搭建不容易,github上有人用 Rust 实现了 Bitwarden 服务器,项目叫 bitwarden_rs,并且提供了 Docker 镜像,这个实现更进一步降低了对机器配置的要求,并且 Docker 镜像体积很小,部署非常方便。 此外,官方服务器中需要付费订阅的一些功能,在这个实现中是免费的。这篇文章就利用宝塔面板中docker容器搭建Bitwarden。 一:简介 bitwarden_rs:https://github.com/dani-garcia/bitwarden_rs 官网:https://bitwarden.com/ 二:要求 宝塔面板、docker管理器、一个解析好的域名。 三:部署 我们用docker来部署,两行命令足够了,命令如下:
用户3519280
2023/07/07
7840
宝塔面板搭建密码管理bitwarden
Docker 搭建 Bitwarden服务端
本文链接: https://moeci.com/posts/分类-docker/docker-bitwarden/
yiyun
2022/04/01
7340
bitwarden(vaultwarden)密码管理器 自建服务器
chrome 自带的密码管理保存密码,任何一个运行在你电脑上的程序,不需要管理员权限,都能解密并读取本地保存的密码。因为 chrome 的密码保存在本地加密的 sqlite 中,同时加解密密钥也明文保存在本地文件里,任何程序都能读取。
残浔
2023/05/11
3.1K0
bitwarden(vaultwarden)密码管理器 自建服务器
腾讯云双十一活动:腾讯云轻量应用服务器快速搭建Python开发环境指南
双十一不仅仅是购物狂欢节,对于希望享受高性能云服务的企业和开发者而言,更是入手腾讯云产品的绝佳时机!然而,面对琳琅满目的产品与各种优惠活动,如何才能买到性价比最高的产品?本文将为你深入剖析腾讯云双十一的优惠机制,教你如何用最少的预算获取最佳的云服务配置,助你在年末冲刺中脱颖而出。
一键难忘
2024/11/10
5141
腾讯云双十一活动:腾讯云轻量应用服务器快速搭建Python开发环境指南
Bitwarden / Vaultwarden --- 密码管理工具
Bitwarden 是一款自由且开源的密码管理服务,用户可在加密的保管库中存储敏感信息。Bitwarden 平台提供有多种客户端应用程序,包括网页用户界面、桌面应用,浏览器扩展、移动应用以及命令行界面。Bitwarden 提供云端托管服务,并支持自行部署解决方案。
子舒
2023/08/23
2K0
Bitwarden / Vaultwarden  --- 密码管理工具
腾讯云轻量应用服务器使用docker搭建轻量devops
手上闲置了一台腾讯云轻量应用服务器,最近打算用docker部署一套轻量化的devops流程,用于测试自己的个人项目。
4O4
2023/11/08
9950
【玩转腾讯云】妈妈再也不用担心我记不住密码啦!
在我们的生活和工作当中,会用到非常多的网络应用,因为并不是每个应用都能用类似QQ/微信一键登录的方式来绑定账号,所以也就有了非常多的账号密码,记密码成为了让我们非常头疼的事情。太简单或者过于单一的密码容易被撞库或“脱裤”,而太复杂的密码又难以记忆。因此,市面上就有了多款帮助我们记录密码的软件服务,比如1password、Lastpass等。这些软件能够自动抓取我们提交的账号密码保存到云端,实现多终端同步、自动填充密码等功能。虽说这类服务一般还是比较靠谱的,而且还有一些付费套餐。但是密码存在别人的服务器上你总是会有些不放心,谁知道哪天会不会出现数据泄露之类的问题?
张戈
2020/03/29
10K7
【玩转腾讯云】妈妈再也不用担心我记不住密码啦!
【5分钟玩转Lighthouse】搭建bitwarden个人密码管理器
现在各种网站和手机APP都要求设置密码和输入密码,每个人都要设置大量的密码。如果都设为统一密码,就存在一旦一个密码被攻破,其他密码都失效的情况。如果要分别设置为不同密码,那么记住密码又成了一个困难的问题。所以密码管理工具也就应运而生,比较有名的密码管理工具有1Password,OneSafe,LastPass,但是这些工具大多数需要收费并且密码存储在其提供的服务器上。密码交给别人管理,还是有些不放心。
风之泪
2021/02/01
13K20
【5分钟玩转Lighthouse】搭建bitwarden个人密码管理器
新一代开源代码托管平台Gitea
Gitea 是一个轻量级的 DevOps 平台软件。从开发计划到产品成型的整个软件生命周期,他都能够高效而轻松的帮助团队和开发者。包括 Git 托管、代码审查、团队协作、软件包注册和 CI/CD。它与 GitHub、Bitbucket 和 GitLab 等比较类似。Gitea 最初是从Gogs分支而来,几乎所有代码都已更改
Tinywan
2024/07/30
6090
新一代开源代码托管平台Gitea
【玩转Lighthouse】部署Bitwarden密码管理及备份教程
1.本文假定给予 Ubuntu/Debian下进行,使用 CentOS 请自行替换为相应命令
creeper
2022/04/12
1.3K0
部署 bitwarden 管理个人密码
用户可以直接下载软件使用,用的就是官方的服务器。它也可以以 docker 形式运行在自己的服务器上。
饶文津
2020/07/06
1.7K0
怎么样使用腾讯云轻量应用服务器搭建一个团队轻量wiki
介绍: MM-Wiki 一个轻量级的企业知识分享与团队协同软件,可用于快速构建企业 Wiki 和团队知识分享平台。部署方便,使用简单,帮助团队构建一个信息共享、文档管理的协作环境。
青阳
2021/08/10
2.5K0
怎么样使用腾讯云轻量应用服务器搭建一个团队轻量wiki
推荐阅读
相关推荐
使用非 Docker 方案在腾讯云轻量应用服务器上搭建密码管理软件 Vaultwarden (Bitwarden_rs)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档