Code Monkey home page Code Monkey logo

obsidian-livesync's People

Contributors

antokeinanen avatar banool avatar bioluks avatar bpazy avatar calvinbui avatar cgcel avatar garlic-hub avatar hilsonp avatar hugo-persson avatar jendler avatar jt-wang avatar karasevm avatar liamswayne avatar michaelbrunn3r avatar miigon avatar mohamedbassem avatar samyarkd avatar seeker0472 avatar snyk-bot avatar toon159 avatar vrtmrz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

obsidian-livesync's Issues

Should I close obsidian when I'm not using it every day?

Because of the slow synchronization of livesync, I almost always leave the PC side obsidian running.
The data connection is slow because I use pocket wifi.
Reason 2. obsidian alone uses more than half of the processing power of my PC.

failed to sync

Hello, I am trying this plugin out with self hosted couchdb. obsidian on ipad can successfully connect to my server over https. but when I tried to sync, it would throw error “remote database is newer or corrupted, make sure to latest version of self hosted live sync”. I am  using 0.6.0 plugin and latest couchdb docker image (v3.2.1) from dockerhub. I am passing the local.ini into docker as instructed and also mounted a local directory into docker for data storage. Initially the database is empty and I can see three databases are created, _repricator, _users and obsydian_livesync_version after first connection. Did I miss something or do anything wrong?

Cannot sync in Android

It can work well on my Mac and Windows PC(10 and 11), but when I turn to an Android device, this plugin cannot detect my files in the database. And when I press the "drop and receive", it just shows "↑13 ↓0" with no files was downloaded, but the settings I am using are all the same as my Mac and Windows PC. What should I do to get my files in the database?

It looks well on my PC
image

but on my Android, it looks like this.
Screenshot_20220125-183010_Obsidian

Bug: "Plugins and settings (beta)" - "Device and vault name" option is also synced between devices

When syncing my plugins' settings, the "device and vault name" option of obsidian-livesync is also synced.

Example:
I initially configure Obsidian and its plugins on my PC and give it the name "PC-main".
Now I setup my mobile and want it to sync with my PC. My mobile gets the name "mobile-main". Then I sync my vault including plugins and settings - afterwards my mobile will also be called "PC-main" because this setting was also synced.

A workaround for this is to change the "device and vault name" setting after syncing, however this would force me to never sync my settings of obsidian-livesync again or to do this whenever I synced the settings.

I would really appreciate if this could be fixed :)

Replication and Plugin Error When Syncing Larger Vaults

Just following up on a post I'd made on the Obsidian forum (here) over a month ago.

I'd noticed that you'd made several revisions to the plugin since then so thought I'd give it another go today.

Unfortunately, I've found that this issue has not yet been fixed.


I've had some time to investigate the problem and have concluded that it occurs only when attempting to sync a larger vault.

  • Syncing a small vault (68 .md files across 48 folders, total size of 700KB) works quickly and efficiently across all devices. All changes sync promptly when made.
  • Syncing a slightly larger vault (200 files of mixed images and .md across 25 folders, total size of 13.4MB) leads to a replication error.
  • Syncing an even larger vault (300 files of mixed images and .md across 45 folders, total size of 67.7MB) leads to a replication error.

From what I'm able to make of the logs, it seems that the plugin attempts to update the database, gets stuck, and then gives up syncing the files without any particular reason.
Checking the Cloudant database reveals that only the "obsydian_livesync_version" file is ever synced, and no real vault data makes it across.
This problem occurs both if I add all files to the vault in one go to sync in one attempt, or if I slowly add the files to the vault one by one to sync across several attempts.

After the plugin gets stuck, it is frozen in an errored state. Numerous Obsidian restarts and local/remote database initialising and resets do not resolve the problem as long as all files within the large vault are still present.
The only way to recover the plugin is to reset the local/remote databases using a small vault, e.g., the 700KB vault mentioned above.

Please see the log below captured after the plugin has entered the errored state:

21/12/2021, 16:52:56->loading plugin
21/12/2021, 16:52:56->Open Database...
21/12/2021, 16:52:56->Database Info
21/12/2021, 16:52:56->{
  "doc_count": 4861,
  "update_seq": 4861,
  "idb_attachment_format": "binary",
  "db_name": "livesync-test",
  "auto_compaction": true,
  "adapter": "idb"
}
21/12/2021, 16:52:56->Database is now ready.
21/12/2021, 16:52:57->Database closed (by close)
21/12/2021, 16:52:57->Open Database...
21/12/2021, 16:52:57->Database Info
21/12/2021, 16:52:57->{
  "doc_count": 4861,
  "update_seq": 4861,
  "idb_attachment_format": "binary",
  "db_name": "livesync-test",
  "auto_compaction": true,
  "adapter": "idb"
}
21/12/2021, 16:52:57->Database is now ready.
21/12/2021, 16:52:57->Initialize and checking database files
21/12/2021, 16:52:57->Updating database by new files
21/12/2021, 16:52:57->UPDATE DATABASE
21/12/2021, 16:52:57->UPDATE STORAGE
21/12/2021, 16:52:57->CHECK FILE STATUS
21/12/2021, 16:52:57->CHECK FILE STATUS : 25/368
21/12/2021, 16:52:57->CHECK FILE STATUS : 50/368
21/12/2021, 16:52:57->CHECK FILE STATUS : 75/368
21/12/2021, 16:52:57->CHECK FILE STATUS : 100/368
21/12/2021, 16:52:57->CHECK FILE STATUS : 125/368
21/12/2021, 16:52:57->CHECK FILE STATUS : 150/368
21/12/2021, 16:52:57->CHECK FILE STATUS : 175/368
21/12/2021, 16:52:57->CHECK FILE STATUS : 200/368
21/12/2021, 16:52:57->CHECK FILE STATUS : 225/368
21/12/2021, 16:52:57->CHECK FILE STATUS : 250/368
21/12/2021, 16:52:57->CHECK FILE STATUS : 275/368
21/12/2021, 16:52:57->CHECK FILE STATUS : 300/368
21/12/2021, 16:52:57->CHECK FILE STATUS : 325/368
21/12/2021, 16:52:57->CHECK FILE STATUS : 350/368
21/12/2021, 16:52:57->Initialized,NOW TRACKING!
21/12/2021, 16:52:57->Replication closed
21/12/2021, 16:52:57->Lock:batchSave:enter
21/12/2021, 16:52:57->Lock:batchSave:aqquired
21/12/2021, 16:52:57->Lock:batchSave:released
21/12/2021, 16:53:25->Replication closed
21/12/2021, 16:53:25->Lock:batchSave:enter
21/12/2021, 16:53:25->Lock:batchSave:aqquired
21/12/2021, 16:53:25->Lock:batchSave:released
21/12/2021, 16:53:27->Replication closed
21/12/2021, 16:53:27->Lock:batchSave:enter
21/12/2021, 16:53:27->Lock:batchSave:aqquired
21/12/2021, 16:53:27->Lock:batchSave:released
21/12/2021, 16:53:35->Lock:batchSave:enter
21/12/2021, 16:53:35->Lock:batchSave:aqquired
21/12/2021, 16:53:35->Lock:batchSave:released
21/12/2021, 16:53:35->Lock:batchSave:enter
21/12/2021, 16:53:35->Lock:batchSave:aqquired
21/12/2021, 16:53:35->Lock:batchSave:released
21/12/2021, 16:53:35->Lock:replicate:enter
21/12/2021, 16:53:35->Lock:replicate:aqquired
21/12/2021, 16:53:35->Replication activated
21/12/2021, 16:53:36->Replication error
21/12/2021, 16:53:36->Lock:replicate:released
21/12/2021, 16:53:37->Error while loading Self-hosted LiveSync
21/12/2021, 16:53:37->Error:Failed to fetch

This is quite a significant problem for me at the moment as it means that I'm unable to sync my entire vault across my devices.

Any help or suggestions would be very much appreciated.

[FR] A new way to save large documents

I would assume that large binary files in a vault are not changed frequently (are we doing diff on them anyway?). If that's the case, is it possible to store binary files on places such as S3 or some S3-compatible storage services (some are quite cheap and affordable) and only store a hash/URL to that file in the database?

Originally posted by @chengyuhui in #26 (comment)

Recovery procedure, start from scratch

Some combination of vault refactorings (file deletes and renames) and probably delayed plugin updates on my mobile device has led to a situation where my "main vault" on the PC gets pretty much polluted by changes I had made days ago. Prior to that, I had error messages like "something went wrong on reading elements of ..." etc. and I tried to reset from the mobile side with "Reset local database". In short, I seem to have produced a mess.

What is the best recovery procedure from this? I'm basically prepared to wipe everything (including the remote DB) and start from scratch from a vault as recovered from filesystem backup, but I don't understand the concept for the local database, how do I effectively wipe that? It seems that with the plugin active, it starts to "do something" (i.e. in my case recreating files which were either deleted or moved days ago) as soon as I start Obsidian and the plugin is active.

Also, I don't quite understand the warning on the INITIALIZE button in the settings, in particular the last part "remote data will be merged or corrupted"...

Merge dialog is shown w/o any changes

Reproduced #7
his ideas

Feature ideas:
Default setting for file version conflicts. With options: "Always select newer version of file" and "Always merge files".
A button to pause all replications in the Obsidian bottom bar. Sometimes you need to pause any replication for some time (e.g. during active files editing) without editing plugin settings. You can restore replication according to the settings using the same button or by starting replication manually.

But, I have to investigate why it occurs.

Cannot update plugin

Hello,

First of all, thank you so much for creating this plugin! It has worked flawlessly, with end-to-end encryption, since I installed it, and I now consider it invaluable. I have noticed one issue, however: when I try to update to the latest version (I am running version 0.6.1 on all my devices), it gives me an error saying "Plugin ID mismatch."

How do I solve this?

Cant installed couchdb: Error response from daemon: OCI runtime create failed:

When I tried to install it appears this error. I do have the local.ini exactly as in the documentation

docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mounting "/local.ini" to rootfs at "/opt/couchdb/etc/local.ini" caused: mount through procfd: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
ERRO[0004] error waiting for container: context canceled ```

Feature request: Folder Environments (explained) OR choose which folders to sync/not to sync

I'm facing a problem where I'm trying to share my vault with other people.
I still want my personal notes to be hidden from the rest though, such as my daily notes.

The idea (preferred idea) would be to work with environments. Each environment is enclosed in a folder with a password protect set by the user that sent it to the server (already exists right now with end to end encryption) but with a title (extra input box). That title can then be used to load that environment into an existing local vault. Only the files under the folder of the environment would then sync to the server. The rest of the files in the local vault could then be pushed to the server to a new (user) environment and this could be the "Device and Vault name" from the "Plugins and settings (beta)" tab in the settings. For easy reasons you could ask them to put all their files in a new folder called "username" for example so that only that folder and the files under it get pushed and synced to the user environment.

This way there's a user structure within the server and multiple users can fetch different folders they have access to with the password that is set to those. Also this way the user gets the choice of uploading all/partially its local files to the server or if they want to keep it local.


Easier idea (less preferred, because of local files)

It would be handy if I could choose which folders I want to sync and which ones I don't want to sync.
I could then easily just make 2 folders: personal and collab I'd then turn on sync for the collab folder or turn off sync for the personal folder.

This way it stays very neat and multiple users can use a collaborative environment while still having their personal notes in 1 vault on their PC. Downside here is that the local files aren't synced to the server.

Need document improvement

Error message on synchronization:

“(newfile:plain-…” is caused by the plugin failed to write a note.
Self-hosted LiveSync synchronizes the file by redoing minor changes.
But if there are missing pieces in intermediate changesets, the message is shown temporarily. (Intermediate changeset often shrank for faster synchronization when you leave obsidian open.)
If subsequent redo is applied successfully, it doesn’t matter (as you see), but while applying changes, we can’t peek what will subsequent.

Empty Folder

Self-hosted LiveSync syncs only files, not to folder.
So, As you said, an empty folder would not be synced.
And when the folder becomes empty, the folder will be deleted.

Settings Clarity, Rephrasing & Typos

While this isn't an immediate issue, it may deter new users who are less familiar with the plugin and its configuration. I feel therefore it is definitely something to consider and improve if possible.

Below are a few examples and how they could be improved:


remote config
"These settings are kept locked while synchronisation is in progress."

empty folders
"Enabled - empty folders stored locally are synced to the remote database.
Disabled - empty folders stored locally are not synced to the remote database, and those that become empty on another device will not sync to other devices."

corrupted data
"There is no corrupted data."


I would like to also point out, though, that I very much like the new settings layout. It is far more organised and structured compared that of earlier releases. This combined with improvements to the text will make the plugin far easier to use.

If you'd like any help with re-writing anything, including anything in the docs, I'd be more than happy to help!

CouchDB setup: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.

So I've tried to set up CouchDB with a Caddy proxy and a LetsEncrypt cert, below's the docker compose. Access to Fauxton on the given address works, however, testing the connection from the plugin throws this error (my.domain.tld is actually ${COUCHDB_SERVER} as configured for Docker):

Access to fetch at 'https://my.domain.tld//' from origin 'app://obsidian.md' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.

Any ideas?

version: "3.7"

services:

  caddy:
    image: lucaslorentz/caddy-docker-proxy:ci-alpine
    container_name: caddy
    ports:
      - 80:80
      - 443:443
    environment:
      - CADDY_INGRESS_NETWORKS=caddy
    networks:
      - caddy
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data/caddy:/data

  couchserver:
    image: couchdb
    ports:
      - "5984:5984"
    environment:
      - COUCHDB_USER=${COUCHDB_USER}
      - COUCHDB_PASSWORD=${COUCHDB_PW}
    volumes:
        - ./data/couchdb:/opt/couchdb/data
    networks:
      - caddy
    labels:
      caddy: ${COUCHDB_SERVER}
      caddy.header.Access-Control-Allow-Origin: "app://obsidian.md"
      caddy.header.Access-Control-Allow-Methods: "\"GET, POST, PATCH, PUT, DELETE, OPTIONS\""
      caddy.header.Access-Control-Allow-Credentials: "true"
      caddy.header.Access-Control-Allow-Headers: "Origin, Content-Type"
      caddy.header.-Server: ""
      caddy.reverse_proxy: "{{upstreams 5984}}"

  # https://stackoverflow.com/questions/63623075/how-to-run-commands-from-docker-compose-yml-to-start-couchdb
  initializer:
    image: curlimages/curl
    depends_on:
      - couchserver
    command: ["sh","-c","sleep 15 && curl -u ${COUCHDB_USER}:${COUCHDB_PW} -X PUT couchserver:5984/_users &&  curl -u ${COUCHDB_USER}:${COUCHDB_PW} -X PUT couchserver:5984/test"]
    networks:
      - caddy

What constitutes a completed sync?

Is it the file size? Or is it the update date?

  1. In the morning, I start writing my daily notes on my iPhone obsidian. I go to work and write on my iPhone until I get home. 2.
    When I get home, I start up obsidian on my computer, and it creates a daily note with only today's templates.
    I'd like the daily note created in 1 to remain, but if it's just the update time, the brand new daily note in 2 will be chosen.
    When the software can't decide, it asks me which of the two files I want to choose, sometimes it asks and sometimes it doesn't. I was scared to use the PC side of the daily note.
    I'm too scared to open the Daily Note on the PC side.

CORS problem with multiple devices (Windows and iOS)

As it turns out, the CORS configuration differs per device. Obsidian running on Windows requires an Access-Control-Allow-Origin 'app://obsidian.md' but Obsidian running on an iPad apparently 'capacitor://localhost'

The problem is that neither setting 2 Access-Control-Allow-Origin headers is working:

Access to fetch at '...' from origin 'app://obsidian.md' has been blocked by CORS policy:
The 'Access-Control-Allow-Origin' header contains multiple values 'capacitor://localhost, app://obsidian.md',
but only one is allowed. Have the server send the header with a valid value, or,
if an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

nor setting Access-Control-Allow-Origin to "*" is working:

Access to fetch at '...' from origin 'app://obsidian.md' has been blocked by CORS policy:
Response to preflight request doesn't pass access control check:
The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*'
when the request's credentials mode is 'include'.

Hidden directory sync

Am i missing somthing or livesync doesn't sync hidden directory??
I have two obsidian config dir (mobile and pc) but they are not syncing. I see plugin syncing settings, but i want to sync my css config too

Moved note is not deleted from Remote DB

Try this:

  1. Set sync when: Startup, Open note and save note.
  2. Create a note, for example: note001, save it.
  3. Change note name to note002, write something in it, save it, then move it to another folder.
  4. Close Obsidian.
  5. Restart Obsidian, now, you got:
  • a note named note001 under root,
  • a note name note002 under root
  • and a note under your folder name note002.

See, you get 3 notes, but it should be one. Seems this plugin does not delete those notes who changed name or moved to another folder from remote DB.

IBM cloud is used in this case.

Problems with “?” in document title.

Firstly, thank you for writing this plugin. Really great, just what I needed.

Today, whilst adding a new document, it failed to sync. I presumed a database error so did the usual purge and resync but it didn’t correct the issue. The title was a question, so I removed the question mark and the sync then went through ok.

I presume there is some issue with syncing titles with special characters in, or something like that, and just wanted to notify you so you were aware.

Thanks again for all your work on this.

Bug: Custom .js files for templater are encrypted when received

Something goes wrong when receiving my custom .js files to use for templater. They are called "User Script Functions" in templater.
Templater completely breaks when the setting is active on the received scripts.

The cause is that my custom .js scripts are completely encrypted while not even using the encryption setting.

When I replace my received .js files with my local/server .js files the problem is gone as they are now not encrypted anymore.
This is a quick fix ofc, when I would receive my vault as new on a new pc, I'd have to copy over my scripts manually.
I'm intending to share my vault with a bunch of people, so this becomes a problem.

Confused about plugins and settings (beta) tab in the settings

First of all, this project is INCREDIBLE! I want to say a big thanks, very smooth install, although a few questions about the plugin sync.
I got the sync working after a few tries, but it confuses me a lot hence these questions:

  1. Might be a bug or perhaps still in development, but nothing seems to work when without enabling "Enable plugin synchronization", there's no popup telling me that though.

  2. Enabling/disabling "Show own plugins and settings" seems to bug out with what is showing under "Device and Vault name" when disabled. Sometimes it shows no config, sometimes it shows a config but the config is from another device that hasn't saved the plugins into the database. When this is disabled shouldn't it show me the plugins that are on the server and not from a random device?

  3. When loading the plugins on another device they get imported, but disabled. Not a problem, I can enable them manually. Though when enabling an addon and going in its settings, they are empty and still need to be configured. So what I'm thinking is that the data.json file inside the according plugin folder isn't included on the sync?

  4. Sweeping plugins: does this mean they update automatically to the newest version, how does this work and what does it do exactly?

  5. Say I have 2 PC's and 2 mobile phones and want 2 configs for the desktops and for the mobile phones, how would I setup 2 profiles, able to sync with them? In this case, should every device have its own unique name or should it use "desktop" and "mobile" for example?

  6. Couldn't find documentation on this, perhaps cause it's in beta? If there is, let me know where I can find it.

Anyway love the project, things are very straight forward how they work through the guides you put up. Got it working in docker on my linux server using swag instead of caddy. Maybe a little tip: the only thing I found not really straight forward is that you have to click "Apply and receive" button in the Local database config to receive all data. Perhaps this could be simplified for users that are just trying to fetch the vault and don't know much about the configuration process.

File deletion doesn't sync

tested on mobile.
in now, check before database docs are exists and if there're any doc. suppress deletion.
have to change as like, detele file if no-conflicted docs or change processing order.

New folder is not synchronized between different devices.

Try this:

  • set all devices' sync to when: obsidian started and note saved.
  • Open Obsidian from desktop.
  • Create a new folder, for example folder01. create a note under this folder and put something into this note, and save this note.
  • Open Obsidian from mobile, folder01 and its note are not there.

Invalid server connection and replication notifications

Thank you for the wonderful plugin! But there is one very inconvenient point. Notifications about the status of connection/replication. I use own DB server. In the plugin settings, you can enter ANY valid IP and it does not matter if CouchDB is installed, whether the authorization data are correct, the plugin always notifies - "CONNECTED TO IP". Moreover, synchronization is always supposedly successful. Replication always ends successfully. In reality, NOTHING happens with the remote storage, the data is not sent to the server correctly. Please make correct informative notifications about connection/actions status. For example: cannot connect to CouchDB, wrong login/password for authorization, cannot create DB (if not enough rights), etc. If there is no direct access to the server, it is very helpful to understand why it does not work.

Also missing is a tooltip for icons in the status bar (zzz, stop icon, etc). To better understand what exactly is going on.

"Open settings and check message" without any apparent error but no sync to remote CouchDB happens

Testing the connection works without errors, an initial upload/sync using Drop and send worked, too, but from that point on, I get a message "Open settings and check message" and no changes are actually pushed to the remote CouchDB.

The message log reports this:

25.11.2021, 10:48:29->save ok:id:h:9a7835c0 rev:1-1b7f5fd78f1448aecf909f728961e119  
25.11.2021, 10:48:29->note content saven, pieces:5 new:1, skip:4, cache:4  
25.11.2021, 10:48:29->note saven:0-WorkInProgress/Obsidian LiveSync.md:6-0984a9894c70267934145d5e5468ee5b  
25.11.2021, 10:48:29->put database:0-WorkInProgress/Obsidian LiveSync.md(plain)

Nothing further in the developer console, also no apparent network traffic, so I suppose something is stuck without an error message...

ipv6

When I rename (a→b) a folder on one device, a new folder (b) is created on the other device instead of renaming the old one (a).

Can not sync the note and the plugin/settings.

Hi, Thanks for your great plugin!

I test the livesync in two Win10 device.

In device 1, it works well. I can sync the note and the plugin/settings.

In device 2, it does not work. I can not sync the note and the plugin/settings. The log is as following.

If I write in the device 1, the device 2 can change as well. But if I write in the device 2, the device 1 will not change since device 2 can not upload any information.

Plugin/setting sync is the same : 1 -> 2 ok, 2->1 not ok.

image

If I close the plugin/setting sync, all things work well. I don't know what happened.

Could you please help me?

Thank your again for your help and great plugin!

[Feature request] Synchronization of plugins and their settings.

I would like to suggest a killer feature that would greatly increase the usefulness of the plugin:
The ability to synchronize plugins (core/community) and their settings between devices. This is a VERY useful thing if you have several devices/vaults, and even more so if several people are using the vault. Now you have to configure the plugins on each device by hand. Set the same settings. This is not very convenient especially if the list of plugins/their settings change often.

Required features:

  1. Showing the plugins available in the remote DB and allowing you to choose which of them you want to synchronize with local vault. Options "Synchronize all plugins" / "Synchronize selected plugins".
  2. If a plugin is not installed in your local vault, show "This plugin not installed. Copy the plugin and apply settings/data from remote DB?".
  3. If the plugin already has local settings (in other words, the plugin was previously installed in the local vault), suggest "Overwrite existing local settings/data of the plugin?".
  4. Optional. When manipulating, show the version of the plugins (which one is installed and which one is in the "cloud") and warn that the version will be upgraded/downgraded.
  5. Optional. Ability to choose: synchronize plugins (all / only selected) at each replication or manually (by default).

I hope Obsidian does not disallow a particular plugin to manipulate the directories of other plugins.

P.S: Thanks again for the quick and useful updates of the plugin.

How to encrypt the database?

Thanks for this great work!

When I hit "Sweep plugins automatically", the editor shows as below:
Snipaste_2022-02-16_19-53-16

I don't know how to encrypt my database. Could you please tell me what I should do?

Plugin Naming Feedback

Hi there! I've received feedback from a couple of community members and moderators that the naming of this plugin could be confused with Obsidian's own Sync add-on.

Is there any chance you'd consider a tweak to the plugin's name, perhaps something like obsidian-couchdb-livesync to make it more distinguishable?

Thanks!

"The file that having platform dependent name has been arrived." - if Apostrophe Present

Similar to #21, in the latest release (0.2.0) the same occurs if there are apostrophes ' in the file name.

In addition, once the file name has been changed (e.g., from "Jennifer's Story - One.md" to "Jennifers Story - One.md") to allow for syncing, a notification will remain persistent on start-up.

"The file that having platform dependent name has been arrived. This file has skipped: Jennifer's Story - One.md"
This is despite the file name having been corrected and the file already syncing correctly.

[FR] add some debug into "test" button for CouchDB

Its, of course, related with issue about lack of documentation about CouchDB, but anyway..
I'm first time using Coach DB and stuck with "not connected error"... Its says nothing about what happend. I'm added ssl (maybe its the reason, like issue in android), tested connection with curl (its works), then discovered that i'm not enabled CORS... Its stupid mistake, but really can help new users.
Please consider to add some debug function that shows actual error (no connection to server, permission issue, CORS not enabled, cant resolve domain name,..)

Does the IP of the database have to be bound to the domain to be used

Do I have to enter a domain name in the location of the URL to connect? I entered both the ipv4 and ipv6 addresses and the connection was unsuccessful! Because the user of obsidian is not a professional programmer and does not necessarily have a domain name, it is recommended to enter ipv4 or ipv6 directly.

got "bad_request:invalid UTF-8 JSON" in test server

Hello, I met this error when trying to connect to the test server:

3/17/2022, 3:41:21 PM->could not connect to https://olstaste.vrtmrz.net/ls-706574657374323339 : obsidian 
(bad_request:invalid UTF-8 JSON)

I have two machines, one runs win11 and another runs macOS Monterey, both with Obsidian v0.13.33, and they have the same error.

Cannot connect to couchdb under Android system

This plugin is great, but I encountered some problems in using it, I hope you can take a look at it when you have time.

I used Docker to build the couchdb service, and my PC can be synchronized normally, but my Android phone keeps prompting could not connect to http://192.168.0.102:5984:obsidian. I am using an Android phone to log in to http://192.168.0.102:5984/_utils/index.html and I can log in normally.

The address, username and password of couchdb are all entered correctly.

Storing content directly into CouchDB

In order to be able to send links from a mobile device directly into Obsidian, I currently run a Telegram bot which reads a defined .md file from my Vault on a Nextcloud Share and appends the received link (or text for that matter) to the .md file. There was some interest in this on the Obsidian forum as well if I remember correctly - and the objective here is not web clipping (so no competition here ;-) but just link storing.

Since we now have a CouchDB server with an API, I'd like to get rid of the "Nextcloud detour" and store links received via Telegram (or in the future maybe some other messaging means) directly into my CouchDB instance.

So if I understand https://github.com/vrtmrz/obsidian-livesync/blob/main/docs/tech_info.md correctly, I would need to

  • retrieve the defined doc for the to be stored link
  • create a new child id
    • here's question 1: what's the approach to generate a new unique id like h:de31526b0 ? using the couchdb Python library I get an ID like 02e38e5427c1f16e4ffc8bfb25008661 for a new document - and that clearly isn't compliant to the kind of IDs being used by livesync
  • append that ID to the children list of the defined doc and save that
  • on the next sync, my vault would be updated with this change

Is there anything else I would need to take care of for this to work?

Docs of Setup CouchDB is needed.

From Forum:

Basics

  • Self-hosting limitations.
  • Setup CouchDB ( bare? / dockerimage? )
  • Preferred configurations
  • Expose to the internet by ngrok for testing.

Additional

  • Expose to the internet by own domain and the setup the reverse proxy with SSL.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.