ネチズンLeo
とPaco
フィードバック、Synology は にアップグレードされました、投稿された内容DSM7.2
によると、レジストリはミラーリングを検索できます、レジストリ ミラーリングとして使用する必要がありますが、Lao Su は次の状況をテストしましたが、機能しませんでした。必要に応じて、実際に行うことができます自分でテストしてくださいLeo
/var/packages/Docker/etc/dockerd.json
DSM7.2
https://docker.nju.edu.cn
- 上海:
DSM6.2.3
とDSM6.1.7
; - 深セン:
DSM7.1.1
;
この記事はネチズンのリクエストに応じて掲載されています
Mr.Chow
。
この需要は以前から存在していましたが、Lao Su 独自のソリューションである一方で、逆生成ドメイン名をObsidian + syncthing
介して接続するときに問題が発生したため、棚上げされていました。cloudflare Tunnel
最近、老蘇は を介してインターネットにhttps
アクセスし、実験に使用できるようになりました。Tailscale
Obsidian LiveSync とは何ですか?
Obsidian LiveSync
コミュニティが実装したObsidian
ノート同期プラグインです。CouchDB
互換性のあるすべてのプラットフォームで利用可能なデータベースを同期用の中間サーバーとして使用しますObsidian
。Obsidian LiveSync
公式とは互換性がありませんので注意してくださいObsidian Sync
。
CouchDBとは何ですか?
Apache CouchDB
web
は、使いやすさと「完全に組み込まれたデータベース」であることに重点を置いたオープンソース データベースです。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は未使用のポートを削除しましたCouchDB
HTTP API
Web
環境
変数 | 価値 |
---|---|
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_USER
、COUCHDB_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 を超えています。Obsidian
obsidian
30G
プラグインマーケットで検索するlivesync
インストールが完了したら、プラグインを有効にする必要もあります
LAN使用、URI
使用http://群晖IP:5984
- 使用名: 対応する
COUCHDB_USER
値。 - パスワード: 対応する
COUCHDB_PASSWORD
値。 - データベース名: 任意の値を入力します。
インターネットで使用する場合は、URI
以前の逆ドメイン名を使用してくださいhttps://ol.laosu.ml
。
Device name
異なる端末を区別し、同期を可能にするために使用されます。
同期ステータスがステータスバーに表示されます
データベースtest
ライブラリで閲覧できます
図書館に入って記録を閲覧する
まとめ
インターネット上で信頼できる評価はほとんどありませんが、インターネット上で入手可能な情報から、大量のデータを挿入する場合(たとえば)CouchDB
に比べてはるかに遅いことが主な理由であり、その主な理由は、データベースを操作するためのプロトコルを使用すると、わずかに問題が発生する可能性があることです。ネットワークパフォーマンスが悪い。RDBMS
MySQL
CouchDB
HTTP
参照文書
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