BitWarden数据迁移以及邮箱SMTP配置

bitwarden

个人密码库,这是我玩nas之后最想推荐的一个东西,今天就来分享一下

之前使用bitwarden都是网上现成的文章照抄(能搜到的都是抄来抄去的简直离谱),导致邮箱无法使用、数据库也只是本地的sqlLite很不方便。
前段时间突然想优化一下了,就去翻了官方文档

docker-compose

废话少说,直接放docker-compose.yml

version: "3.9"
services:master:image: docker.io/vaultwarden/server:1.27.0container_name: bitwardenvolumes:- ./data:/data:rwports:- 7032:80environment:- TZ=Asia/Shanghai- DATABASE_URL=postgresql://root:XXXXXXXXXXXX@172.16.0.130:5432/bitwarden- SERVER_ADMIN_EMAIL=XXXXXXXXX@163.com # 系统初始化登录账号- SIGNUPS_ALLOWED=true # 是否开放注册- INVITATIONS_ALLOWED=true # 是否允许邀请- WEBSOCKET_ENABLED=true- ADMIN_TOKEN=XXXXXXXXXXXXXXXXXXXXX随机生成XXXXXXXXXXXXXXXXXXXXXXXXXXXXX- DOMAIN=https://pwd.taotaojs.top- SMTP_HOST=smtp.163.com- SMTP_FROM=XXXXXXXXXXXXXXXX@163.com- SMTP_PORT=465- SMTP_SECURITY=force_tls- SMTP_USERNAME=XXXXXXXXXXXXXXXXXX@163.com- SMTP_PASSWORD=XXXXXXXXXXXXXXXXXXnetworks:- basenetwork
networks:basenetwork:external: true

说明

将上面的那些XXXXX替换成自己的就可以了

我将这个容器和postgresql容器放到同个网络下了,所以可以直接使用172.16这种内网地址直连数据库(之后会整理那些基础服务相关的docker-compose,敬请期待)
另外SMTP服务要自己去163或者其他平台申请,很简单的

启动这个docker-compose之后,我们就可以看到库中已经自动生成好表结构了

图 0

但是这个时候库中的数据都是空白的

迁移数据

我们将原来数据文件下载下来

图 1

然后用数据库连接工具连接

图 2

直接输入连接名和选择数据库文件就可以了

图 3

点击测试连接,是通的(毕竟是本地

图 4

打开就可以看到所有存有线上数据的表了

图 6

然后只要将这个库中的数据导出为sql,放到新的PostgreSql库中运行即可。
不过在迁移过程过程中遇到了几处问题:

数据库迁移遇到的问题

外键约束

要先将users和organizations中的数据导入,才能导入其他数据

16进制字符串问题

users的insert语句中,password_hash和salt字段都是十六进制形式。而sqlLite导出来的会是【X’十六进制字符串’】这种形式,导入到PostgreSql中,我们要将这个改成【E’\x十六进制字符串’】即可

boolean类型数据问题

PostgreSql的boolean类型无法识别1或0,只能将其改成true或false


全都导入好之后,网页就可以直接登录进去了,想要尝试一下也可以访问 https://pwd.taotaojs.top 注册玩玩。虽然库在我手中,但是他全都是死加密的,所以还是相当安全的。

End。

欢迎来到我的blog > https://blog.taotaojs.top/archives/bitwarden-shu-ju-qian-yi-zhi-postgresql

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

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

相关文章

分布式版本管理系统---->Git(Linux---centos(保姆式)讲解1)

文章目录: 1:什么是Git以及作用 2.Git的基本操作过程(创建git仓库,配置仓库的配置) 3.git的工作区,暂存区,版本库的关系 4.将文件添加到版本库:git add 与git commit -m命令 5.git log查看日志的引入 6.查看.git文件中的内容 7.修改文件内容查…

15:00的面试,15:06就出来了,问的问题过于变态了。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到5月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

java中BigDecimal里面的subtract函数的意思?

在Java中,BigDecimal类提供了一个名为subtract()的函数,用于执行两个BigDecimal对象的减法操作。该函数返回一个新的BigDecimal对象,表示两个操作数相减的结果。 下面是BigDecimal.subtract()函数的用法示例: java Copy code im…

L1-020:帅到没朋友

题目描述 当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。 输入格式: 输入第一行给出一个正整数N(≤100),是已知朋友圈的个数;随后N行&#…

代码随想录算法训练营第28天|● 93.复原IP地址 ● 78.子集 ● 90.子集II

93. 复原 IP 地址 已解答 中等 相关标签 相关企业 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。 例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地…

Java多线程详解(上)——2023/11/23

Process(进程)与Thread(线程) 说起进程,就不得不说下程序。程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程则是执行程序的一次执行过程,它是一个动…

基于微服务架构的外卖系统源码开发

在当前互联网时代,外卖行业蓬勃发展,用户对于高效、智能的外卖服务需求不断增加。为了满足这一需求,采用微服务架构的外卖系统成为了开发的主流方向。本文将探讨基于微服务的外卖系统源码开发,涉及到关键技术和示例代码。 1. 微…

伪原创软件盘点,文本处理事半功倍

在工作中,我们常常需要处理大量的文字信息,无论是写作、编辑还是其他文本相关的工作。有时候,为了提高效率,我们可能会需要一些伪原创软件,它们可以帮助我们巧妙地改写文本,使之保留原意的同时呈现出全新的…

Nacos前世今生、安装配置、服务注册源码、整合Springboot实战

一、前言 随着微服务架构的兴起,服务的规模不断增长,对于服务的发现、配置和管理变得越来越复杂。 在这个背景下,Nacos应运而生,以其强大的功能和灵活性成为云原生领域的瑞士军刀之一。 Nacos是一个由阿里巴巴开源的项目&#…

在Spring Cloud中使用组件Zuul网关,并注册到Eureka中去

在上一篇中,我们搭建了Spring Cloud的父子模块,并实现了一个Eureka子模块的启动,可以通过浏览器地址去访问Eureka主页了,相信了解过的童鞋应该看到,主页上并未有任何服务去注册,那么我们就在这篇&#xff0…

SQL怎么优化执行效率更高?

SQL怎么优化执行效率更高? 1.SQL优化的原则是:将一次操作需要读取的BLOCK数减到最低,即在最短的时间达到最大的数据吞吐量。 调整不良SQL通常可以从以下几点切入: 检查不良的SQL,考虑其写法是否还有可优化内容 检查子查询 考虑…

Clickhouse UPDATE 和 DELETE操作

历史: 在OLAP数据库中,可变数据(Mutable data)通常是不被欢迎的,Clickhouse也是如此,早期版本不支持UPDATE和DELTE操作。在Clickhouse 1.1.54388版本之后才支持UPDATE和DELETE操作,适用于Merge…

字节跳动开源基于SD1.5的 MagicAnimate 一张照片秒变真人舞蹈视频

从今天起,在社交平台上看到的小姐姐舞蹈短视频很可能就是AI生成的。字节跳动新开源基于SD1.5的MagicAnimate,它只需要一张照片和一组动作,就能生成近似真人的舞蹈视频。 项目地址:MagicAnimate使用入口地址 Ai模型最新工具和软件a…

linux部署前端页面(实战)

Linux基本命令(学习笔记)零基础入门linux系统运维_linux find exec rm_Z_Xshan的博客-CSDN博客 如果linux不熟可以看我之前写的入门教程 感谢支持!! 一、服务器 这里去购买云服务器,如果是练习可以用虚拟机&#xff…

LeetCode算法题解(动态规划)|LeetCode392. 判断子序列、LeetCode115. 不同的子序列

一、LeetCode392. 判断子序列 题目链接:392. 判断子序列 题目描述: 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新…

一文看懂 Linux 内核,清晰明了

Linux内核预备工作 理解Linux内核最好预备的知识点:懂C语言 懂一点操作系统的知识 熟悉少量相关算法 懂计算机体系结构 Linux内核的特点: 结合了 unix 操作系统的一些基础概念。 Linux内核的任务: 1. 从技术层面讲,内核是硬…

ESP32 LVGL Gui-Guider的移植

使用参考: ESP32系列之LVGL(三):Gui-Guider的使用_esp32 lvgl-CSDN博客 1、拷贝文件: 按照上面的文章,使用Gui-Guider软件生成C代码之后,custom和generated是我们要使用到的文件,…

阿里云服务器租赁价格表,预算100元到5000元可选配置

阿里云服务器租用费用,阿里云轻量应用服务器2核2G3M带宽轻量服务器一年87元,2核4G4M带宽轻量服务器一年165元12个月,ECS云服务器e系列2核2G配置3M固定带宽99元一年、2核4G配置365元一年、2核8G配置522元一年,阿里云u1服务器2核4G、…

成为Java开发高手:掌握Spring框架的关键技能-DI

DI相关内容 1.1 setter注入1.1.2 注入引用数据类型1.1.3 注入简单数据类型步骤1:声明属性并提供setter方法步骤2:配置文件中进行注入配置步骤3:运行程序 1.2 构造器注入1.2.2 构造器注入引用数据类型步骤1:删除setter方法并提供构造方法步骤2:配置文件中进行配置构造方式注入步…

最优化理论复习--凸集与凸函数

文章目录 基本概念凸集凸函数下一篇 基本概念 可行点(可行解):在规划问题中,满足约束条件的点可行集或可行域:全体可行点组成的集合无约束问题:如果一个问题的可行集是整个空间。 分为三种情况&#xff1…