自建 Bitwarden 密码管理器

news2024/10/17 19:30:20

大佬零度解说的文件修改,与原文不太一样,详细请看:自建 Bitwarden 密码管理器!完全免费开源,轻量级,安全又可靠!-零度解说

教程:你的密码真的安全吗?Bitwarden 密码管理器!一键部署,完全免费开源,跨平台支持,安全又可靠 | 零度解说_哔哩哔哩_bilibili

先安装 Docker 和 Docker Compose

之前有教程不细说

  • Docker版本检查docker --version
  • Docker Compose版本检查docker-compose --version

一键部署 Vaultwarden ,含 WebSocket 端口

docker run -d --name vaultwarden \
           -v /vw-data/:/data/ \
           --restart unless-stopped \
           -p 6060:80 \
           -p 3012:3012 \
           --restart=always \
           vaultwarden/server:latest

逐行解释:

  1. docker run:这是运行一个新的容器的命令。

  2. -ddaemon模式,表示后台运行容器,即启动容器后立即返回命令行,不会阻塞当前终端。

  3. --name vaultwarden:为容器指定一个名称vaultwarden。使用命名而不是ID可以更容易地识别和管理容器。

  4. -v /vw-data/:/data/将宿主机上的/vw-data/目录挂载到容器内的/data/目录。这样可以在容器和宿主机之间共享文件,并且保证数据持久性。

  5. --restart unless-stopped:设置容器的重启策略。这里的unless-stopped表示如果容器停止(但不是因为用户手动停止),则自动重启容器。其他可选值包括alwayson-failure等。

  6. -p 6060:80:映射端口,将宿主机的6060端口映射到容器内的80端口。这意味着外部请求到宿主机的6060端口将被转发到容器内的80端口。

  7. -p 3012:3012:同样是端口映射,将宿主机的3012端口映射到容器内的3012端口。如果容器内的服务在3012端口上有流量,则可以直接通过宿主机的同一端口进行通信。

  8. vaultwarden/server:latest:指定要运行的Docker镜像。这里使用的是名为vaultwarden/server的镜像,并且使用的是latest标签,即最新的镜像版本。

可以通过ip:6060 访问你的 Bitwarden密码管理面板

http://ip:6060

ip:3012 是你的 WebSocket 通信链接

一键安装 Nginx Proxy Manager


现在它是http协议,为了更安全,我们需要部署下HTTPS加密的访问协议。 我们可以通过Nginx Proxy Manager进行配置SSL和Nginx反代

docker run -d \
  --name=npm \
  --network host \
  -p 81:81 \
  -p 443:443 \
  -v /home/npm/data:/data \
  -v /home/npm/letsencrypt:/etc/letsencrypt \
  --restart=always \
  chishin/nginx-proxy-manager-zh:2.9.18
  1. --restart=always:设置容器的重启策略为always,这意味着无论容器退出的状态如何,Docker都将会重启该容器。这有助于确保服务始终可用。

  2. jc21/nginx-proxy-manager:latest:指定要使用的Docker镜像。这里使用的是jc21/nginx-proxy-manager镜像,并且使用的是latest标签,即最新的镜像版本。

Nginx Proxy Manager申请证书出现Internal Error,可以回退到:2.9.18版本

安装成功后进入Nginx Proxy Manager 管理界面:http://<你的服务器IP>:81

用户:admin@example.com

密码:changeme

登入后记得先修改密码!然后在里面绑定你自己的域名并安装SSL证书,都是可视化操作,非常简单,可以看零度的视频教程演示!记得开放下端口:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 8080/tcp
sudo ufw allow 3012/tcp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2216034.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Redis】缓存预热、雪崩、击穿、穿透、过期删除策略、内存淘汰策略

Redis常见问题总结&#xff1a; Redis常见问题总结Redis缓存预热Redis缓存雪崩Redis缓存击穿Redis缓存穿透 Redis 中 key 的过期删除策略数据删除策略 Redis内存淘汰策略一、Redis对过期数据的处理&#xff08;一&#xff09;相关配置&#xff08;二&#xff09;内存淘汰流程&a…

el-table表格里面有一条横线

表格里面 有一条横线&#xff0c; 出现原因&#xff1a;是自定义了表格头.使用了固定列&#xff08;fixed&#xff09;&#xff0c;定宽。就很难受。。。 添加样式文件&#xff1a; <style lang"scss" scoped>::v-deep {.el-table__fixed-right {height: 100%…

植物大战僵尸杂交版之后要出联机版植物大战僵尸?(内测中,可在安卓手机上玩,文末附下载链接)

继植物大战僵尸杂交版之后给大家介绍一个杂交版作者正在酝酿的“植物大战僵尸射击版” 植物大战僵尸射击版介绍 《植物大战僵尸杂交版》的创作者“潜艇伟伟迷”即将推出PVZ改版新作——《植物大战僵尸射击版》。游戏将支持PC、手游和web端&#xff0c;提供单人、双人、三人、…

取证之FTK Imager学习笔记

一、FTK Imager制作镜像详细教程 1、文件-创建磁盘镜像 2、参数详解&#xff1a; 1&#xff09;物理驱动器 整个驱动器&#xff0c;如&#xff1a;识别到的是整块硬盘、U盘等&#xff0c;而不管你分几个分区&#xff1b; 2&#xff09;逻辑驱动器&#xff08;L&#xff09…

数据结构-5.9.树的存储结构

一.树的逻辑结构&#xff1a; 二.双亲表示法(顺序存储)&#xff1a; 1.树中除了根结点外每一颗树中的任意一个结点都只有一个父结点(双亲结点)&#xff1b; 2.结点包括结点数据和指针&#xff1b; 3.上述图片中右边的顺序存储解析&#xff1a;比如A结点左边的0&#xff0c;就…

机器学习:知识蒸馏(Knowledge Distillation,KD)

知识蒸馏&#xff08;Knowledge Distillation&#xff0c;KD&#xff09;作为深度学习领域中的一种模型压缩技术&#xff0c;主要用于将大规模、复杂的神经网络模型&#xff08;即教师模型&#xff09;压缩为较小的、轻量化的模型&#xff08;即学生模型&#xff09;。在实际应…

Java基础 03

⭐输入法的原理&#xff1a;⭐ 1.输入法本质就是输入字符的编码 2. Unicode对应16位编码-->所有字符都是16进制&#xff08;也就是16进制&#xff09; 码点&#xff1a;一套编码表中&#xff0c;单个字符对应的代码串叫做“码点” 3.变量 Java中所有应用的变量都要声明且…

Python面向对象编程:继承和多态③

文章目录 一、继承1.1 什么是继承1.2 定义父类和子类1.3 子类重写父类的方法1.4 多继承 二、多态2.1 什么是多态2.2 多态的实现2.3 抽象类和接口 三、综合详细例子3.1 项目结构3.2 模块代码init.pyshape.pycircle.pyrectangle.py 3.3 主程序代码main.py 3.4 运行结果 四、总结 …

实用篇—高效批量复制INSERT语句,并去除某列

在数据库管理中&#xff0c;常常需要将数据从一个表复制到另一个表。使用 Navicat 等工具可以方便地导出多条 INSERT 语句&#xff0c;但有时我们不需要某些列&#xff08;如 ID 列&#xff09;。本文将介绍如何在 Navicat 中复制多条 INSERT 语句&#xff0c;并去除 ID 列以便…

C语言笔记 14

函数原型 函数的先后关系 我们把自己定义的函数isPrime()写在main函数上面 是因为C的编译器自上而下顺序分析你的代码&#xff0c;在看到isPrime的时候&#xff0c;它需要知道isPrime()的样子——也就是isPrime()要几个参数&#xff0c;每个参数的类型如何&#xff0c;返回什么…

python画图|在三维空间的不同平面上分别绘制不同类型二维图

【1】引言 前序已经完成了基础的二维图和三维图绘制教程探索&#xff0c;可直达的链接包括但不限于&#xff1a; python画图|3D参数化图形输出-CSDN博客 python画三角函数图|小白入门级教程_正余弦函数画图python-CSDN博客 在学习过程中&#xff0c;发现一个案例&#xff1…

XGBoost回归预测 | MATLAB实现XGBoost极限梯度提升树多输入单输出

回归预测 | MATLAB实现XGBoost极限梯度提升树多输入单输出 目录 回归预测 | MATLAB实现XGBoost极限梯度提升树多输入单输出预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 XGBoost的全称是eXtreme Gradient Boosting,它是经过优化的分布式梯度提升库,旨在高效、…

优化UVM环境(三)-环境发包较多时,会触发timeout

书接上回&#xff1a; 优化UVM环境&#xff08;一&#xff09;-环境结束靠的是timeout&#xff0c;而不是正常的objection结束 优化UVM环境&#xff08;二&#xff09;-将error/fatal红色字体打印&#xff0c;pass绿色字体打印 环境发包较多时&#xff0c;会触发timeout 解决…

SpringBoot +Vue3前后端分离项目入门基础实例五

项目说明 项项目名称使用框架说明后端项目springboot_vue_element_demoSpringBoot + MyBatis-plus + MySQL完成基本的增删改查操作API前端项目vue-projectVue3 + ElementUI plus + axios界面展示,调用后端API项目文档目录 SpringBoot +Vue3前后端分离项目入门基础实例一 Spri…

机器学习:opencv--人脸检测以及微笑检测

目录 前言 一、人脸检测的原理 1.特征提取 2.分类器 二、代码实现 1.图片预处理 2.加载分类器 3.进行人脸识别 4.标注人脸及显示 三、微笑检测 前言 人脸检测是计算机视觉中的一个重要任务&#xff0c;旨在自动识别图像或视频中的人脸。它可以用于多种应用&#xff0…

【C++】- STL之vector模拟实现

1.vector的介绍 vector是表示可变大小数组的序列容器。vector采用的连续存储空间来存储元素。意味着也可以采用下标对vector的元素进行访问&#xff0c;和数组一样高效。但是它的大小是可以动态改变的&#xff0c;而且它的大小会被容器自动处理。vector使用动态分配数组来存储它…

三子棋(C 语言)

目录 一、游戏设计的整体思路二、各个步骤的代码实现1. 菜单及循环选择的实现2. 棋盘的初始化和显示3. 轮流下棋及结果判断实现4. 结果判断实现 三、所有代码四、总结 一、游戏设计的整体思路 &#xff08;1&#xff09;提供一个菜单让玩家选择人机对战、玩家对战或者退出游戏…

企业电子印章主要通过以下几种方式进行防伪

企业电子印章主要通过以下几种方式进行防伪&#xff1a; 一、数字证书和加密技术 数字证书认证 企业电子印章依托数字证书&#xff0c;数字证书由权威的第三方数字认证机构颁发&#xff0c;确保了印章使用者的身份真实性。 数字证书如同企业在数字世界的身份证&#xff0c;包…

Python 工具库每日推荐 【sqlparse】

文章目录 引言SQL解析工具的重要性今日推荐:sqlparse工具库主要功能:使用场景:安装与配置快速上手示例代码代码解释实际应用案例案例:SQL查询分析器案例分析高级特性自定义格式化处理多个语句扩展阅读与资源优缺点分析优点:缺点:总结【 已更新完 Python工具库每日推荐 专…

SpringCloud-持久层框架MyBatis Plus的使用与原理详解

在现代微服务架构中&#xff0c;SpringCloud 是一个非常流行的解决方案。而在数据库操作层面&#xff0c;MyBatis Plus 作为 MyBatis 的增强工具&#xff0c;能够简化开发&#xff0c;提升效率&#xff0c;特别是在开发企业级应用和分布式系统时尤为有用。本文将详细介绍 MyBat…