Liamm

Liamm

念念不忘,必有回响~
youtube
bilibili
xiaoyuzhou
jike

Obsidian Multi-platform Real-time Sync

Plugin Demo#

137355323-f57a8b09-abf2-4501-836c-8cb7d2ff24a3

This solution is based on the livesync plugin + Synology Docker. You need to be able to access your own NAS and have a domain name~
Official project address Official Chinese instructions

Experience#

I've been using it for almost two months, and the synchronization is smooth. It feels like using cloud note-taking software~~

Setting up a database with Synology Docker#

Installation#

Search for couchdb in Docker and download it.

undefined202307071718225.webp

Double-click on the downloaded image to install it, click on Advanced Settings, and enter the configuration page.
undefined202307071719542.webp

Configuration#

General: Check the option for automatic restart (optional)
undefined202307071719359.webp

Save this official code to a text document and rename it to local.ini

[couchdb]
single_node=true
max_document_size = 50000000

[chttpd]
require_valid_user = true
max_http_request_size = 4294967296
enable_cors = true

[chttpd_auth]
require_valid_user = true
authentication_redirect = /_utils/session.html

[httpd]
WWW-Authenticate = Basic realm="couchdb"
bind_address = 0.0.0.0

[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

Then upload local.ini to the corresponding NAS path. Here is the official documentation page
undefined202307071720686.webp

I usually manually set the port to match the container, but the local port should be customizable and untested~

undefined202307071720381.webp

In the environment, you need to manually add two configurations:
COUCHDB_PASSWORD Set the value to your password
COUCHDB_USER Set the value to your username
undefined202307071721441.webp

After configuring, start Docker and access http://your IP:your port
For example: http://192.168.31.2:5984
If successful, it will display a string of characters, and that's it~

undefined202307071721261.webp

Client Configuration#

Next, configure the client plugin:
URL: Fill in the website you just tested, remember to include the port number
Username and Password: The account and password you added to Docker earlier
Database Name: You can choose any name for easy identification
Once filled in, you can click Test to test the connection. If successful, there will be a prompt.

By the way, it is recommended to enable End to End Encryption for end-to-end encryption.
undefined202307071721766.webp

Then configure the synchronization. It is recommended to select LiveSync for real-time synchronization.
After all, we install this plugin for this feature~

undefined202307071721579.webp

One thing to note is that this plugin is not compatible with other synchronization plugins, including the official synchronization. It is recommended to disable all other synchronization settings, otherwise there may be problems~

You can also synchronize client settings and other plugins, but this is a test feature and can be enabled as needed.
You must name the current device before you can enable it.

undefined202307071721335.webp

It is recommended to enable "notify customized". This way, when there is a new configuration, the software will display a reminder, and clicking on it will take you to the configuration page, where you can manually select which content to synchronize.

undefined202307071722696.webp

Adding Synology Reverse Proxy, Enabling HTTPS, and Setting up External Access#

After configuring the previous steps, you can start synchronizing, but for now, you can only access it within the local network, which is not perfect.

Next, we will configure external access. My NAS at home has already been configured with [[DDNS]] and the corresponding [[domain certificate]]. If you are not familiar with this knowledge, please study it on your own. I will write a separate configuration tutorial later. Here, it is assumed that you can already access your NAS at home from the external network and have configured an SSL certificate.

Setting up Synology Reverse Proxy#

  • Open the Synology Control Panel and click on Application Portal.
  • Click on Reverse Proxy Server and then click on Add.
  • Configure as shown in the following image:

undefined202307071722775.webp

Enable port forwarding in the router's backend. Here is an image borrowed from the internet:
Name: Fill in any name
Protocol: Just use the default TCP
External Port: Fill in any port number, it is recommended to match the port number set for the Synology Reverse Proxy Server earlier
Internal IP Address: The address of your NAS
Internal Port: The port number set for the Synology Reverse Proxy Server (not the default Docker port 5984)

undefined202307071723982.webp

After adding, save and apply the changes.
Then, in the client, fill in the corresponding URI address with your own domain name and the corresponding access port, and you're done!

Finally#

This is a synchronization plugin, not a backup plugin. If you have Synology, it is recommended to use it with Drive for automatic backup. I mainly use this plugin for synchronization on iOS and iPad clients. Apple's iCloud synchronization has some issues. If you are using a PC or Android, it feels better to use it with Synology's Drive suite. It also has version control~

References:
不使用第三方软件实现 Obsidian 多平台实时同步 - 经验分享 - Obsidian 中文论坛

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.