惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
B
Blog RSS Feed
云风的 BLOG
云风的 BLOG
G
Google Developers Blog
Recent Announcements
Recent Announcements
A
About on SuperTechFans
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Google Online Security Blog
Google Online Security Blog
Google DeepMind News
Google DeepMind News
S
Schneier on Security
S
Secure Thoughts
T
The Exploit Database - CXSecurity.com
Martin Fowler
Martin Fowler
P
Proofpoint News Feed
Security Latest
Security Latest
Jina AI
Jina AI
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Recorded Future
Recorded Future
T
Tor Project blog
有赞技术团队
有赞技术团队
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
News | PayPal Newsroom
博客园 - 三生石上(FineUI控件)
MyScale Blog
MyScale Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
Forbes - Security
Forbes - Security
D
DataBreaches.Net
人人都是产品经理
人人都是产品经理
NISL@THU
NISL@THU
C
Cisco Blogs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Google DeepMind News
Google DeepMind News
Project Zero
Project Zero
IT之家
IT之家
T
Threatpost
Cyberwarzone
Cyberwarzone
O
OpenAI News
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
J
Java Code Geeks
P
Proofpoint News Feed
The Last Watchdog
The Last Watchdog
月光博客
月光博客
Latest news
Latest news
MongoDB | Blog
MongoDB | Blog
Apple Machine Learning Research
Apple Machine Learning Research

LengYue's Blog

在 Android 中实现 iOS 液态玻璃效果(二:折射与渗透效果) | LengYue's Blog 在 Android 中实现 iOS 液态玻璃效果 | LengYue's Blog Dart 单线程模型的本质 | LengYue's Blog 使用 Rust 开发 Android 底层库,并简化 Java 与 Rust 相互操作 | LengYue's Blog 将 Rust 编译为可在 Android 上使用的二进制文件 | LengYue's Blog 使用 GoMobile 创建 Android、iOS 跨平台 WebSocket Library | LengYue's Blog Flutter error not found dart html | LengYue's Blog AndroidStudio新版本Logcat | LengYue's Blog Typecho to Hugo | LengYue's Blog GetX Router 设置返回值 | LengYue's Blog Flutter 基础 | Dart 语法 mixin | LengYue's Blog Android 使用字节码 hook 修复第三发 bug | LengYue's Blog 在 Jetpack Compose 中使用输入框(TextField )遇到的一些问题 | LengYue's Blog Android-使用@AutoService实现spi | LengYue's Blog RecyclerView使用优化的ListAdapter | LengYue's Blog ⾃定义布局流程 | LengYue's Blog ViewModel之自定义构造函数 | LengYue's Blog Android Jetpack Compose 超快速上手指南 | LengYue's Blog android 11 [api 30] 适配指南 | LengYue's Blog Android 声明式 UI 框架 Litho 初探 —— Sections API | LengYue's Blog Android 声明式 UI 框架 Litho 初探 —— Layout | LengYue's Blog Android声明式UI框架 Litho 初探 —— MountSpec的使用 | LengYue's Blog Android声明式UI框架 Litho 初探——基础使用 | LengYue's Blog Android声明式UI框架 Litho 初探 ——两种数据类型 | LengYue's Blog
不使用第三方软件实现Obsidian多平台实时同步 | LengYue's Blog
LengYue · 2021-12-24 · via LengYue's Blog

这篇文章涉及服务器配置、docker 技术,当然都是很初级的使用 相信很多人跟我一样,不喜欢使用第三方软件来同步 Obsidian。每次要打开两个软件,很麻烦。这种情况在手机上最为明显。 这也是我为什么从 9 月多就接触了 Obsidian 但是一没有最为主力的原因。虽然印象笔记已经非常的不好用,但是他的同步真的非常的方便。 直到最近在翻看 Obsidian 的插件的时候接触到了这个插件 Self-hosted LiveSync(虽然也有一款支持 WebDav 的插件,但是试了一下连不上服务器,作者说目前 WebDav 还在测试中)这个插件真的非常的棒 👍🏻。实现了无感同步,甚至可以多平台实时同步。 引用一张作者的图:

gif

搭建服务器端

Self-hosted LiveSync 使用的是 CouchDB 数据库,这是一个开源的具有版本控制的文档数据库。

你可使用 IBM 提供的 CouchDB 数据库,这里有作者写的教程 https://github.com/vrtmrz/obsidian-livesync/blob/main/docs/setup_cloudant.md 我们这里还是直接自己搭建,我是在家里的群辉 NAS 上搭建的,如果你没有 NAS 也可以在腾讯云、阿里云等云服务上搭建。优先推荐在 NAS 上搭建。

安装 docker

群辉直接再套件商店安装。云服务器用户使用下面的命令

docker version > /dev/null || curl -fsSL get.docker.com | bash
service docker restart

安装数据库

首先创建配置文件 local.ini

[couchdb]
single_node=true
[chttpd]
require_valid_user = true
[chttpd_auth]
require_valid_user = true
authentication_redirect = /_utils/session.html
[httpd]
WWW-Authenticate = Basic realm="couchdb"
enable_cors = true
[cors]
origins = app://obsidian.md,capacitor://localhost,http://localhost
credentials = true
headers = accept, authorization, content-type, origin, referer
methods = GET, PUT, POST, HEAD, DELETE
max_age = 3600

配置文件创建完成后,就可以启动 CouchDB:

docker run --rm -it -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password -v /opt/couchdb/db:/opt/couchdb/data -v /opt/couchdb/local.ini:/opt/couchdb/etc/local.ini -p 6900:5984 couchdb

其中: COUCHDB_USER 后面的是你的密码 COUCHDB_USER 后面的是你的用户名 /opt/couchdb/local.ini 是配置文件的路径 /opt/couchdb/db 是数据库的路径 -p 6900:5984 前面的 6900 是暴露在外的端口。 以上的所有配置都是可以修改的。可以改成你自己的配置,云服务器请提前在安全组里放行相应的端口。 群辉这么配置: 重启或者关闭 NAS 后自动启动 webp 配置文件和数据库路径 webp 用户名和密码 webp 端口配置 webp 访问以下网址,如果能打开则表示 CouchDB 已经启动: http://你的 IP

比如 http://127.0.0.1:6900 打开网站,账号密码就是上面设置的。

显示的内容是一个 JSON 字符串。这是正常的: webp 群辉无需其他设置。云服务器用户再次执行(注意替换端口、账号密码):

docker run -d --restart always  -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password -v /opt/couchdb/db:/opt/couchdb/data -v /opt/couchdb/local.ini:/opt/couchdb/etc/local.ini -p 6900:5984 couchdb

让这个镜像在后台运行,并且自动启动。 后端部分暂时就配置完成了。

配置插件

以下是桌面端 Obsidian 的配置,手机上还需要其他配置: 安装插件后,打开填写各项,URL 就是上面那个网址。database name 这里填写你的数据库名字。没有回自动创建,所以随便填就行。 webp 端到端加密,如果你只需要同步文章,可以关闭。如果需要同步文章、插件、配置,那么必须打开 webp 设置你的客户端和 Vault 的名字。我的理解是设置一个标示,跟其他 Vault 做区分。 webp 这样配置完成之后,已经可以在桌面端相互同步了。

配置 Https

因为手机上的限制,想要在手机上使用同步功能还需要配置 https。

域名

虽然 IP 也可以申请 https 但是考虑到成本问题,最方便的还是使用域名,.com 应该是最便宜的。

反向代理服务端

使用云服务搭建的同学,推荐使用宝塔面板。安装宝塔面板 安装这里我就不多做介绍了。能看到这里我相信都能独立安装的。 使用 NAS 的同学,这里可能有点麻烦,你可以使用 DDNS 或者群辉自己提供的 QC,如果有条件的也可以是使用 frp 等等。总之能连接到你 NAS 的办法都可以。 这里我自己用的是 FRP。 宝塔面板你可以这么操作:

不建议在手机上使用 LiveSync 可能会比较耗电。 补充一下群辉 NAS 的配置: 在安全里新增 域名证书。这里的域名就是你 FRP DDNS 等用到的证书 webp 新增证书后一定要点击配置,将新增的证书应用到域名上。 然后使用群辉内置的反向代理 webp 通常这么设置,域名填写你证书的额域名即可 webp 之后就可以正常使用了。