LBF38 / obsidian-syncthing-integration

Obsidian plugin for Syncthing integration
MIT License
182 stars 6 forks source link
obsidian obsidian-plugin syncthing typescript

syncthing logo obsidian logo

Obsidian Syncthing integration

This plugin allows you to integrate tools in your Obsidian vault for managing synchronization using Syncthing.

:label: Badges

All Contributors GitHub release (latest SemVer) Obsidian plugin release Join the Community : GitHub Discussions badge semantic-release: angular

GitHub Issues or Pull Requests GitHub Issues or Pull Requests GitHub license

:link: Useful links

Related softwares

Plugin's related links

:arrow_down: Installation

You can install the plugin using the following ways :

Guides

The best way to install the plugin is via the Obsidian Community Plugins tab. You can find a guide on how to do this here.

Otherwise, you can download the latest release from the releases page on GitHub. Then, you can install the plugin manually by downloading the main.js, manifest.json and styles.css files and placing them in your vault's .obsidian/plugins/obsidian-syncthing-integration folder.

If you want to install the plugin from the source code, please see the Development section.

Finally, you can install the plugin with Obsidian42 BRAT and provide the GitHub repository URL. Please see the BRAT documentation

:eyes: Plugin Vision

[!NOTE] The initial vision of this plugin has evolved since its creation. As I have tested and tried to implement the plugin, I have realized that some features are not feasible or not necessary. Therefore, some expected features or behaviours might misdirect users. An updated description of the plugin's goals is described below.

This plugin now aims to provide integrated features related to Syncthing and Obsidian. You can see the Roadmap for more information about the plugin's features and future developments.

[!NOTE] If you want a full integrated Syncthing synchronization with your notes app, you can try the anytype notetaking app. It provides a full integration of a syncing protocol in the note-taking app, see more about this here.

This project provides features like conflicting files resolution, status bar feature, diff conflicting files, ignoring files from synchronization (coming soon), and more. It is mainly features based on files available in the vault and that are specific to Syncthing. Feel free to suggest new features or improvements in the Discussions tab or via a new issue.

Moreover, the integrated Syncthing configuration panel (coming soon) will provide a way to configure Syncthing directly from Obsidian. It will be a lighter version than the official Syncthing app, due to technical limitations.

The plugin is more focused on getting information from an active Syncthing instance on your device (PC, mobile or tablet) and provide you meaningful information about the status of the synchronization.

:wrench: Configuration

[!WARNING] Please backup your vault and use this plugin wisely. Some features could modify files in your vault so please always remember to backup your vault in a different location.

:construction: This plugin is still in development. The configuration might not yet be fully available. :construction:

The plugin's configuration provides a way to set up the connection to your Syncthing instance. On Desktop, it should be straightforward if you have the CLI installed. Otherwise, you can use the GUI to set up the connection.

Click here to see an example of the configuration settings ![current Syncthing configuration](assets/plugin_syncthing_settings.png)

[!IMPORTANT] The synchronization is done in real-time, using peer-to-peer connections. Therefore, all the devices you want to synchronize must be connected at the same time.

To overcome this, you could setup one device as a relay server. This device will be always connected and will relay the data between the other devices, like a NAS or a VPS.

:heart: Contributing

To contribute to this plugin, you can create issues and pull requests on GitHub. Moreover, you can discuss any new idea or suggestion in the Discussions tab. Please follow the Code of Conduct when contributing to this project and read the Contributing guidelines.

:hammer_and_wrench: Development

If you want to develop this plugin locally, please follow the instructions below.

  1. Clone the repository
  2. Install the dependencies using pnpm install
  3. Build the plugin using pnpm dev
  4. (Optional) Use the hot-reload plugin in Obsidian to reload the plugin automatically when you make changes

[!NOTE] When using the hot-reload plugin, you have to clone this plugin in the .obsidian/plugins folder of your vault. And the plugin's files should be at the root of the folder. (main.js, manifest.json and styles.css) It should be automatically set up.

:clap: Credits

Here are some inspirations for this plugin :

:busts_in_silhouette: Authors

:sparkles: Contributors

LBF38
LBF38

💻 📖
Josh Samuel
Josh Samuel

💻

:memo: Licensing

This project is licensed under the MIT License. See LICENSE for more information.