解决浏览器书签同步问题,极空间部署开源免费的跨平台书签同步工具『xBrowserSync』

news2024/12/25 0:03:25

解决浏览器书签同步问题,极空间部署开源免费的跨平台书签同步工具『xBrowserSync』

哈喽小伙伴们好,我是Stark-C~

作为一个喜欢折腾的数码党,我平时上网冲浪使用的浏览器绝不会只限于一种,就比如说我在上班的地方只会用到Edge浏览器,但是在家里我就能放飞自我,除了Edge,还会用到Chrome,或者Firefox。

这些浏览器在使用的时候如果是同一账号下的同一个浏览器,在不考虑网络条件的情况下,很容易做到书签同步,但是对于和我一样使用多个浏览器的小伙伴,想要让书签在多个不同的浏览器之间实现同步与共享,需要怎么实现呢?

很简单,今天的这篇教程就是来解决这个问题的,它便是一个免费且开源的浏览器书签同步工具 『xBrowserSync』。

关于xBrowserSync

🔺xBrowserSync是一款非常强大且使用的浏览器书签同步工具,它支持 Chrome、Edge、Firefox 以及 Android 设备浏览器备份和同步书签,使得书签管理变得无缝且高效。xBrowserSync 提供了多个免费的存储服务,所有数据都经过加密存储,所以安全方面也是非常靠谱。

Snipaste_2024-07-30_21-51-57

🔺需要说明的是,Android 设备端需要在它的G站页面自行下载并安装。

它的特性与亮点如下:

  • 数据同步:允许用户在不同设备和浏览器之间同步书签,确保您的书签始终是最新的。

  • 数据安全:所有同步的数据都会被加密,以保护您的数据安全。

  • 开源:xBrowserSync 是开源软件,这意味着任何人都可以查看其源代码,确保其没有隐藏的恶意代码。

  • 自定义存储:除了使用 xBrowserSync 官方提供的免费存储服务外,用户还可以通过 xBrowserSync Docker 自建存储服务器,提供更多的存储空间。

  • 方便易用:xBrowserSync 的用户界面设计简洁,易于使用,只需几步就可以完成书签的同步。

xBrowserSync默认使用的是公有服务器,虽然它自己说数据都经过加密存储,但是肯定没有放在我们自己的服务器放心,所以今天的教程其实就是通过 xBrowserSync Docker 自建存储服务器,这样所有数据都存放在我们NAS本地,用起来自然更放心。

xBrowserSync部署

xBrowserSync的自由化部署需要两部分:一个是mongo数据库的依赖,一个是xBrowserSync本身项目的部署。咱们一步步的来。

第一步,搭建mongo数据库

🔺打开极空间的文件管理器(个人空间),在Docker目录下新建“mongodb”文件夹,然后在“mongodb”文件夹下面在建立一个“data”子文件夹。

🔺然后在极空间的Docker镜像仓库中自定义拉取镜像“mongo:4.4”。

PS:如果遇到Docker镜像拉取问题请直接跳转到文章最后部分的解决方案。

🔺完成后直接双击镜像开始部署容器。

🔺“基本设置”这里,容器名称修改为“mongo”(这里不让你们随意修改主要是方便后续跟着抄作业~),可以取消勾选“启用性能限制”。

🔺【文件夹路径】这里,咱们需要添加以下一条映射关系(多出来的映射直接删除即可):

  • .Docker/mongodb/data:/data/db

🔺“端口”这里设置本地端口不冲突即可,我这里直接和容器端口一样了~

🔺最后是“能力” ,将所有容器能力都开启。

其它就没什么可修改的了,点“应用”即可完成配置。

🔺然后我们还需要在mongo数据库中创建一个xbrowsersyncdb的数据库用户,点击mongo数据库容器的“SSH”。

🔺命令选择“/bin/bash”,用户默认root,连接。

🔺在SSH终端页面先输入命令【mongo admin】指定管理员权限。

🔺接着依次输入以下命令(不懂的别乱改,直接抄作业便是):

  • db.createUser({ user: "xbrowsersyncdb", pwd: "123456", roles: [ { role: "readWrite", db: "xbrowsersync" }, { role: "readWrite", db: "xbrowsersynctest" } ] }) #创建数据库用户

  • use xbrowsersync #切换到 xbrowsersync 数据库

  • db.newsynclogs.createIndex( { "expiresAt": 1 }, { expireAfterSeconds: 0 } ) #创建一个expiresAt索引

  • db.newsynclogs.createIndex({ "ipAddress": 1 }) #创建一个ipAddress索引

以上命令注意别漏掉任何一个符号,完成以上就可以点击右上角的“关闭”按钮,退出SSH终端界面了。

第二步,搭建xBrowserSync

🔺再次打开极空间的文件管理器(个人空间),在Docker目录下新建“xbrowsersync”文件夹,然后在“xbrowsersync”文件夹内鼠标右键,选择“新建文本文档”。

🔺在文本文档输入以下内容(特别说明:请一定要遵循我给出的格式!!!):

{  
  "db": {  
    "host": "192.168.50.176",  
    "port": “27017”,  
    "username": "xbrowsersyncdb",  
    "password": "123456",  
    "name": "xbrowsersync"  
  }  
}

以上内容需要修改的仅为host后面的IP,是你自己极空间的本地IP地址;port是mongo数据库的端口,如果你和我一样默认就直接不要动它,至于后面的几个参数如果你前面直接跟着我抄作业的全都默认即可,啥都不用改。完成之后记得点“保存”按钮。

🔺保存之后对“新建文本文档.txt”重命名为“settings.json”(包括后缀也都需要重命名),确定。

🔺会弹出一个警告弹窗,直接无视点“继续”。

🔺重命名之后的文件如上图所示,这个文件也可以在极空间的文件管理器中直接打开(极空间这点还是很强悍的~)。

🔺接着就可以开始部署容器了,还是和之前一样,在极空间的Docker镜像仓库中搜索镜像“xbrowsersync/api”,找到后点“下载”按钮。

🔺完成后直接双击镜像开始部署容器。

🔺“基本设置”这里,这里的容器名称自己可以随意修改,取消勾选“启用性能限制”。

🔺“文件夹路径”这里,咱们需要手动添加以下映射关系:

  • .Docker/xbrowsersync/settings.json:/usr/src/api/config/settings.json # 前面的路径就是我们创建的settings.json文件

🔺“端口”这里设置本地端口不冲突即可。

🔺“环境”这里需要手动添加以下环境变量(直接抄作业便是,不要改参数):

  • XBROWSERSYNC_DB_USER=xbrowsersyncdb

  • XBROWSERSYNC_DB_PWD=123456

其它就没什么可修改的了,点“应用”即可完成配置。

🔺完成以上之后可以看到当前mongo和xbrowsersyncapi两个容器显示“运行中”,就说明没什么问题了。

第三步,做好反向代理

🔺然后需要说明的是,因为我们需要在外网也需要做到浏览器书签同步,所以这里我们一定要提前将它做好反向代理,让我们任何时候都能顺利的链接到我们部署好的 xBrowserSync Docker 存储服务器即可

反向代理这里极力推荐『Lucky』。如果你已经搭建好Lucky,此时我只需要加上一个xBrowserSync的Web服务即可。

极空间搭建Lucky教程:

🔺然后在浏览器输入我们配置好的反向代理链接,如果出现上图所示的“在线”状态,就说明咱们的xBrowserSync服务器部署成功了。

xBrowserSync体验

🔺在正式体验之前,我们先要在各自的浏览器中下载对应的浏览器扩展插件,我这里因为社区规定就不直接上链接了,这里需要你们自行解决。

🔺这里假设你那边的浏览器已经安装好了xBrowserSync扩展插件,直接点击浏览器状态栏的插件图标,首次安装会有安装前的说明,都是英文咱也看不懂,直接点“Continue”吧。

🔺继续~

🔺终于来到配置环节,这里点“Switch Service”。

🔺这里输入咱们配置好的完整反向代理链接地址,然后点“Update"。

🔺这里点Yes。

🔺这里的意思是让我们设置一个密码,这个密码就是你用来同步浏览器书签的唯一密码,可以设置复杂一点。

🔺再次确认密码,Sync。此时xBrowserSync会将当前的本地浏览器中书签全部同步至服务器端。

🔺怎么同步呢?很简单,还是点浏览器状态栏的插件图标,这个时候会有一个“设置”图标,点击它。

🔺然后会看到一个【Sync ID】 ,点击它。

🔺这里会出现一个二维码以及 【Copy Sync ID To Clipboard】 标识,电脑端设置我们点击【Copy Sync ID To Clipboard】 即可复制 Sync ID,而这个二维码其实是给手机端直接扫码使用的。

🔺接着我们来到需要同步的浏览器,需要说明的是,这个要同步的浏览器也是需要提前安装好xBrowserSync扩展插件。打开之后我们同样先设置同步服务器【Switch Service】, 然后点击【Already got a sync ID?】。

🔺这里输入我们刚刚复制的 Sync ID,再输入密码,点击【Sync】。

🔺这时候提示会删除本地书签,再同步服务器端的书签,点【Yes】就开始同步主浏览器的书签了。

🔺我演示的其实是我虚拟机中的一个浏览器,可以看到书签已经顺利的被同步过来了。

🔺最后解决服务器对应的存储空间问题,可以看到默认的为500KB,一般来说是够用的。

🔺如果你想要扩容很简单,打开极空间文件管理器中的settings.json文件,手动添加上图所示的两行参数即可(我这里将它设置为5M容量),请注意格式一定要正确!

  • "maxSyncs": 0,

  • "maxSyncSize": 5120000

🔺最后重启xBrowserSync容器,再次打开xBrowserSync插件的设置,就能看到我们已经成功修改了xBrowserSync的默认大小配置了。

解决Docker镜像拉取的问题

因为众所周知的原因,目前国内的Docker镜像拉取已经抽风...,所以这里针对极空间,给出几个临时可用方案,大家且用且珍惜吧。

🔺打开极空间Docker管理器的“镜像--仓库--设置”。

🔺然后点击“添加”:

  • 库名称:agsvpt.work

  • 库地址:docker.agsvpt.work

完成之后“确定”。

🔺同样的方式再添加上图所示的另外两个仓库,这样我们就额外的得到了3个镜像仓库。

🔺随意勾选3个仓库其中之一,确定。

🔺弹出切换提示,直接点“确定”。

🔺然后弹出“设置仓库可用成功” 的提示,这个时候我们就可以正常拉取需要的镜像了。

🔺看下效果,比如我这里想要“johngong/qbittorrent”这镜像,找到后直接双击下载。

🔺可以看到镜像拉取已经没有问题了。如果碰到拉不动的可以尝试换一个仓库试试,如果都不行,那么只有科学解君愁了~

🔺对了,还有就是建议大家不要忽略了极空间Docker管理器中的一个宝藏板块【常用镜像】,里面都是一些热度较高的常用Docker项目,不光有详细的教程,最主要的是这里面的镜像都是存在极空间自己的服务器上,可以直接拉取的~

总结

总的来说,今天的这个项目还是非常实用的,它可以非常完美的解决了多设备不同浏览器的同步的问题。xBrowserSync 的功能还不止纯粹的书签同步,它还为浏览器数据同步提供了许多灵活和安全的选项,有需要的小伙伴可以盘起来吧!

作为NAS领域的新兴品牌,极空间一直以其创新的设计、强大的硬件、丰富的功能和良好的用户体验受到了许多用户好评,并且自研的ZOS也是非常好用,极易上手。如果你近期有入手NAS的计划,不妨关注下极空间。

好了,以上就是今天给大家分享的内容,我是爱分享的Stark-C,如果今天的内容对你有帮助请记得收藏,顺便点点关注,咱们下期再见!谢谢大家~

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

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

相关文章

项目管理者必读:全生命周期系统选择技巧

国内外主流的10款国外项目管理软件对比:PingCode、Worktile、Trello、Monday.com、ClickUp、Jira、Asana、Tapd、Tower、Teambition。 在管理复杂项目时,选对工具是成功的关键。全生命周期项目管理系统不仅可以帮助你保持项目的进度和预算控制&#xff0…

Windows10配置FFmpeg和使用FFmpeg截取视频流视频

第一部分:Windows10配置FFmpeg 简介:FFmpeg是一个功能强大的多媒体处理工具(用于录制、转换和播放音频和视频)。可以进行转换、剪辑、拼接、过滤等操作。 1、下载FFmpeg工具(分Windows和Linux其他) Download FFmpeghttps://ffm…

【MySQL】执行DDL选择Online DDL还是PT-OSC?

目录 1.前言2.Online DDL和PT-OSC原理、执行机制以及优缺点2.1.Online DDL2.2.PT-OSC 3.各种常用DDL操作如何选择 1.前言 MySQL DDL(Data Definition Language)表结构变更,主要支持Online DDL和PT-OSC模式,但是即使知道两者的工作…

谷粒商城实战笔记-173~174-商城业务-检索服务-搭建页面环境-调整页面

文章目录 一,173-商城业务-检索服务-搭建页面环境1,引入thymeleaf2,search模块导入模板页面3,配置域名4,上传静态资源到nginx的html目录5,nginx配置5.1 域名监听配置5.2 静态资源静态配置 6,sea…

Altium Designer 18原理图器件自动标号

前言: 当我们绘制原理图时,元器件的位号是不会自动生成的,位号大都是乱的,造成出图时十分不和谐。 器件位号修改 第一种方法: 可以先修改一个器件位号,按住shift 键然后再拖动器件会生成一个新的&…

Python面试宝典第33题:电话号码的字母组合

题目 给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合,答案可以按任意顺序返回。给出数字到字母的映射如下图(与手机按键相同)。注意:1不对应任何字母。 示例 1: 输入:digits &quo…

【网络】IP的路径选择——路由控制

目录 路由控制表 默认路由 主机路由 本地环回地址 路由控制表的聚合 网络分层 个人主页:东洛的克莱斯韦克-CSDN博客 路由控制表 在数据通信中,IP地址作为网络层的标识,用于指定数据包的目标位置。然而,仅有IP地址并不足以确…

Linux 进程间通信之管道

个人主页:仍有未知等待探索-CSDN博客 专题分栏: Linux 目录 一、通信 1、进程为什么要通信? 1.数据的类型 2.父进程和子进程算通信吗? 2、进程如何通信? 3、进程通信的常见方式? 二、管道 1、概念…

SpringBoot中整合Mybatis

一、Mybatis快速入门 1.1、在相应的模块中添加依赖的坐标 首先创建一个maven项目 在对应的pom.xml文件中引入下面的依赖 <dependencies><!--mybatis 依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artif…

【已解决】如何解决雅马哈机械手无法连接到在线模式的问题

前言 在一个项目中用到了雅马哈机器手&#xff0c;但是现场操作的时候进场出现连接不上的问题&#xff0c;经过与官方技术讨论得出以下的解决方法。 解决方法 避免这个问题出现在操作完之后必须将机械手控制器切换成离线模式。主要原因&#xff1a;1、机械手控制器本身是属…

什么是知识中台?如何搭建企业知识中台?(企业必懂术语)

一、什么是知识中台&#xff1f; 知识中台是一个集中管理、整合和共享企业知识资源的平台。它利用云计算、大数据和人工智能等技术&#xff0c;将企业内部各部门、各员工手中的知识资源进行集中整合&#xff0c;形成统一的知识库。通过这个平台&#xff0c;员工可以快速查找、…

BGP边界网关协议基础详细

1.BGP概述 1.1 BGP基础 应用层协议&#xff0c;基于TCP&#xff0c;源端口号是随机&#xff0c;目的端口是179。 无类路由协议、外部网关路由协议、采用距离(路径)矢量算法、单播路由协议 核心作用为传递路由。 1.2 AS自治系统 AS是指由同一个技术管理机构管理&#xff0…

数据可视化:解锁数据奥秘的钥匙与实战指南

如何有效地解读和利用这些数据成为了企业和个人面临的重大挑战。数据可视化&#xff0c;作为连接数据与洞察的桥梁&#xff0c;正逐步成为数据分析与决策支持不可或缺的工具。本文将深入探讨数据可视化的本质、用途分类、设计原则、高效制作技巧&#xff0c;并通过Axure产品设计…

四数相加2 | LeetCode-454 | 哈希集合 | Java详细注释

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 &#x1f579;️思路&#xff1a;四数相加 > 两数相加 &#x1f4cc;LeetCode链接&#xff1a;454. 四数相加 II 文章目录 1.题目描述&#x1f34e;2.题解&#x…

事件驱动系统设计之将事件检索与事件处理解耦

0 前言 part1讨论了集成过程中遇到的挑战以及幂等事件处理的作用。解决集成问题之后&#xff0c;我们需要反思事件检索的问题。我们的经验教训表明&#xff0c;将事件检索与事件处理解耦至关重要。 1 事件处理与请求/响应 API 紧耦合 part1讨论了将请求/响应 API 集成到事件…

变量的注意或许需要调试

输入一个自然数N&#xff08;1<N<9&#xff09;&#xff0c;从小到大输出用1~N组成的所有排列&#xff0c;也就说全排列。例如输入3则输出 123 132 213 231 312 321 输入格式: 输入一个自然数N&#xff08;1<N<9&#xff09; 输出格式: N的全排列&#xff0c;每行一…

8.12 day bug

bug1 一定要记得改变this指向&#xff0c;否则调用时this不再指向实例而是调用的上下文。 This.handleChange this.handleChange.bind(this); bug2 同样的代码莫名其妙就是没行&#xff0c;复制粘贴到通义千问&#xff0c;再复制回来居然就行了&#xff0c;prompt是“编写代…

R语言中的命名规则

在R语言中&#xff0c;为变量、元素、函数或对象命名时&#xff0c;遵循一定的规则是至关重要的。这些规则确保代码的可读性、可维护性&#xff0c;并避免与R语言的内部函数和保留字产生冲突。下面我们将详细探讨R中命名的具体规则和注意事项。 1、名字中允许的字符 R语言的命…

数据库方式实现实时排行榜

文章目录 &#x1f31e; Sun Frame&#xff1a;SpringBoot 的轻量级开发框架&#xff08;个人开源项目推荐&#xff09;&#x1f31f; 亮点功能&#x1f4e6; spring cloud模块概览常用工具 &#x1f517; 更多信息1.排行榜的设计1.实时榜单1.数据库统计2.redis 的 sorted set …

25届秋招还有金九银十?会是“史上最难”?

吉祥学安全&#xff1a;知星&#x1f517;http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247483727&idx1&sndb05d8c1115a4539716eddd9fde4e5c9&chksmc0e47813f793f105017fb8551c9b996dc7782987e19efb166ab665f44ca6d900210e6c4c0281&scene21#wechat…