Obsidian 多端末同期プラグイン LiveSync

ここに画像の説明を挿入

ネチズンLeoPacoフィードバック、Synology は にアップグレードされました、投稿された内容DSM7.2によると、レジストリはミラーリングを検索できます、レジストリ ミラーリングとして使用する必要がありますが、Lao Su は次の状況をテストしましたが、機能しませんでした。必要に応じて、実際に行うことができます自分でテストしてくださいLeo/var/packages/Docker/etc/dockerd.jsonDSM7.2https://docker.nju.edu.cn

  • 上海:DSM6.2.3DSM6.1.7;
  • 深セン: DSM7.1.1;

この記事はネチズンのリクエストに応じて掲載されていますMr.Chow

この需要は以前から存在していましたが、Lao Su 独自のソリューションである一方で、逆生成ドメイン名をObsidian + syncthing介して接続するときに問題が発生したため、棚上げされていました。cloudflare Tunnel最近、老蘇は を介し​​てインターネットにhttpsアクセスし、実験に使用できるようになりました。Tailscale

記事ポータル:カスタム ドメイン名を使用してテールスケール ノードにアクセスする

Obsidian LiveSync とは何ですか?

Obsidian LiveSyncコミュニティが実装したObsidianノート同期プラグインです。CouchDB互換性のあるすべてのプラットフォームで利用可能なデータベースを同期用の中間サーバーとして使用しますObsidianObsidian LiveSync公式とは互換性がありませんので注意してくださいObsidian Sync

CouchDBとは何ですか?

Apache CouchDBwebは、使いやすさと「完全に組み込まれたデータベース」であることに重点を置いたオープンソース データベースです。JSONこれは、保存形式、JavaScriptクエリ言語、MapReduceおよびドキュメントHTTPとして使用されるドキュメントAPI指向NoSQLデータベースです。

ここに画像の説明を挿入

準備

次の内容をlocal.iniファイルに保存します

ソース ファイルはhttps://github.com/vrtmrz/self-hosted-livesync-server/blob/main/conf/local.iniから取得しています。Lao Su はテストと検証中に微調整しましたが、調整されていない可能性があります。動作します。動作するはずです。公式のオリジナル バージョンを使用してください。

[couchdb]
single_node=true
max_document_size = 50000000

[chttpd]
require_valid_user = true
max_http_request_size = 4294967296

[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, cache-control, x-requested-with
methods = GET, PUT, POST, HEAD, DELETE, OPTIONS
max_age = 3600

このファイルはcouchdbディレクトリに配置する必要があります

CouchDB をインストールする

Synology の Docker モードでインストールします。

Web GUIのインストール

レジストリ内を検索しcouchdb、最初のcouchdbバージョンの選択を選択しますlatest

この記事の執筆時点では、latestバージョンは に対応しています3.3.2

ここに画像の説明を挿入

ロール

dockerフォルダー内に新しいフォルダーを作成しcouchdb、その中にサブフォルダーを作成しdata、そのディレクトリlocal.iniに先ほど用意したものを置きますcouchdb

ここに画像の説明を挿入

フォルダ マウントパス 説明する
docker/couchdb/data /opt/couchdb/db ストアデータベース
docker/couchdb/local.ini /opt/couchdb/etc/local.ini 設定ファイル

ここに画像の説明を挿入

ポート

ローカルポートが競合していなければ問題ありませんが、不明な場合はコマンドで確認してください。

# 查看端口占用
netstat -tunlp | grep 端口号
ローカルポート コンテナ港
5984 5984

3ポートはデフォルトで開かれます

ここに画像の説明を挿入

しかし、実際には4369、 と は9100クラスタの展開に使用され、と のメインポートのみがインターフェースを提供するために使用さ5984ますスタンドアロンモードでもクラスタモードでもこのポートは使用されるため、Lao Suは未使用のポートを削除しましたCouchDBHTTP APIWeb

ここに画像の説明を挿入

環境

変数 価値
COUCHDB_USER ユーザー
COUCHDB_PASSWORD パスワード

ここに画像の説明を挿入

ドッカークリインストール

コマンドラインに慣れている場合は、次のコマンドを使用した方がdocker cli速いかもしれません。

# 新建文件夹 couchdb
mkdir -p /volume1/docker/couchdb

# 进入 couchdb 目录
cd /volume1/docker/couchdb

# 创建 local.ini 文件
touchu local.ini

ここに画像の説明を挿入

FileStationで開きlocal.ini上記の内容を貼り付けます

ここに画像の説明を挿入

それからあなたはdocker-cliそれを始めることができます

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name couchdb \
   -p 5984:5984 \
   -v $(pwd)/local.ini:/opt/couchdb/etc/local.ini \
   -v $(pwd)/data:/opt/couchdb/db \
   -e COUCHDB_USER=admin \
   -e COUCHDB_PASSWORD=password \
   couchdb

ここに画像の説明を挿入

docker-compose インストール

docker-compose以下の内容をdocker-compose.ymlファイルとして保存してインストールすることもできます

version: '3'

services:
  couchdb:
    image: couchdb
    container_name: couchdb
    restart: unless-stopped
    ports:
      - 5984:5984
    volumes:
      - ./local.ini:/opt/couchdb/etc/local.ini
      - ./data:/opt/couchdb/db
    environment:
      - COUCHDB_USER=admin
      - COUCHDB_PASSWORD=password

docker-compose.ymlと を現在のディレクトリに置きlocal.ini、ワンクリックで開始します

# 一键启动
docker-compose up -d

ここに画像の説明を挿入

local.iniを変更する

各コンテナーが起動されると、local.iniファイルの所有者は になります5984:5984これはdockerミラーリングの制限です。編集する前にファイル所有者を変更するか、書き込み権限を付与してください。local.ini

ここに画像の説明を挿入

権限の編集、写入権限の確認

ここに画像の説明を挿入

wそれなら許可あるよ

ここに画像の説明を挿入

local.ini再起動するたびに、ファイルを変更する場合は、上記の操作を繰り返す必要があります。

走る

ブラウザに入力してhttp://群晖IP:5984ログイン インターフェイスを表示します

ここに画像の説明を挿入

以前に設定した値を入力するとCOUCHDB_USERCOUCHDB_PASSWORD行が表示されますJSON

{
    
    "couchdb":"Welcome","version":"3.3.2","git_sha":"11a234070","uuid":"f151341b0599adeb5deacd59baa02074","features":["access-ready","partitioned","pluggable-storage-engines","reshard","scheduler"],"vendor":{
    
    "name":"The Apache Software Foundation"}}

ここに画像の説明を挿入

ブラウザに入力してくださいhttp://群晖IP:5984/_utils/

ここに画像の説明を挿入

CORS次のようなパラメータ設定を変更できます。

ここに画像の説明を挿入

リバースプロキシ

PC端末のみ同期する必要がある場合はhttpそのプロトコルを使用できますが、移動端末も同期する必要がある場合はhttpsプロトコルを使用する必要があるため、逆生成が必要です

使用したいドメイン名がhttps://ol.laosu.ml

cloudflared + npm最初は解決策を試しましたが、同期的にテストするとエラーが報告されます

ここに画像の説明を挿入

デバッグ インターフェイスで次のログが表示されますが、解決策が見つかりません。

acess to fetch at 'https://ol.laosu.ml/test/' from origin 'app://obsidian.md' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

以下はtailscale + npmそのスキームです

ここに画像の説明を挿入

問題なければすべてにチェックを入れてください。

ここに画像の説明を挿入

クライアントプラグイン

[注]: 次の操作を実行する前に、必ずメモをバックアップしてください、メモをバックアップしてください、メモをバックアップしてください~~~

Lao Su はクライアントのwindowsバージョンのみをテストし、他のプラットフォーム、特に携帯電話は検証していません。Lao Su はデータベースに写真や添付ファイルを入れることに慣れているため、データベース全体が2000 を超えています。Obsidianobsidian30G

プラグインマーケットで検索するlivesync

ここに画像の説明を挿入

インストールが完了したら、プラグインを有効にする必要もあります

ここに画像の説明を挿入

LAN使用、URI使用http://群晖IP:5984

  • 使用名: 対応するCOUCHDB_USER値。
  • パスワード: 対応するCOUCHDB_PASSWORD値。
  • データベース名: 任意の値を入力します。

ここに画像の説明を挿入

インターネットで使用する場合は、URI以前の逆ドメイン名を使用してくださいhttps://ol.laosu.ml

ここに画像の説明を挿入

Device name異なる端末を区別し、同期を可能にするために使用されます。

ここに画像の説明を挿入

同期ステータスがステータスバーに表示されます

ここに画像の説明を挿入

データベースtestライブラリで閲覧できます

ここに画像の説明を挿入

図書館に入って記録を閲覧する

ここに画像の説明を挿入

まとめ

インターネット上で信頼できる評価はほとんどありませんが、インターネット上で入手可能な情報から、大量のデータを挿入する場合(たとえば)CouchDBに比べてはるかに遅いことが主な理由であり、その主な理由は、データベースを操作するためのプロトコルを使用すると、わずかに問題が発生する可能性があることです。ネットワークパフォーマンスが悪い。RDBMSMySQLCouchDBHTTP

参照文書

vrtmrz/obsidian-livesync
アドレス: https://github.com/vrtmrz/obsidian-livesync

vrtmrz/self-hosted-livesync-server
アドレス: https://github.com/vrtmrz/self-hosted-livesync-server

メインの obsidian-livesync/docs/setup_own_server_cn.md · vrtmrz/obsidian-livesync · GitHub
地址:https://github.com/vrtmrz/obsidian-livesync/blob/main/docs/setup_own_server_cn.md

サードパーティ ソフトウェアを使用しない Obsidian マルチプラットフォーム リアルタイム同期 - エクスペリエンスの共有 - Obsidian 中国語フォーラム
アドレス: https://forum-zh.obsidian.md/t/topic/2811

Obsidian と CouchDB の同期構成 - StarryVoid - ブログ
アドレス: https://blog.starryvoid.com/archives/1164.html

おすすめ

転載: blog.csdn.net/wbsu2004/article/details/131390109