Operation Vault (OV, OpVault) consists of three major components: an Obsidian client, web client and relay server. Both the web client and relay server are meant to be self-hostable, while the Obsidian will work after installation. The plugin must work in conjunction with the relay server.
The objective is to transform an Obsidian vault into something that has similar “cloud” capabilities to Google Docs. This means quick generation of links with minimal setup required on both ends of a connection. Oh, and did I mention that this will be (mostly) peer to peer? And end-to-end encrypted?
THIS IS THE REPO FOR THE PLUGIN. THE MONOREPO CAN BE FOUND HERE
Want to use OpVault? That's epic! You can follow these steps:
Important
As of v0.1.7, the server is on port 7200, NOT 8080. As of v0.2, migration should be done automatically upon a reload. If not, please complete manually.
Caution
Please ensure that the server URL is https://opal.jchen.au:7200/ws (NOT :8080) and that the global channel is vault-1 upon installation.
If it still doesn't work, please contact me **with screenshots of the dev console (ctrl+shift+i) with all options selected where it says "Default levels".
- OpVault is not yet publicly listed (coming soon!). For now, you can use BRAT and ensure it is installed and enabled.
- Enter the options/settings for BRAT and add a new beta plugin.
- Use
infinity6542/operation-vault-pluginas the repository. - Select "Latest version".
- Ensure "Enable after isntalling the plugin" is ticked and click on "Add plugin". Please read the above two callouts to ensure that URL is correct.
- You're done!
Warning
While mobile is technically supported, it's a bit iffy at the moment. I've tested it and it's extremely inconsistent and awareness features aren't syupported. Rest assured, I'll nail down mobile support by v1.0.
If you are on mobile (Android/iOS), please see the above warning.
Tip
OpVault works best with a fast and stable internet connection. While in pre-release, the plugin may not work well if you do not have one. Using Operation Vault is easy. Use these steps for sharing and downloading:
- Open the file that you want to share. This is optional, but it'll make the process easier.
- Click on the "Share file" button on the far left ribbon. It'll appear as a link icon, probably near the bottom of the list.
- The "File" field should be prefilled with the file you have open. Set up a PIN if you want, then press either "Create share link" (this will be slightly easier).
- Send the link (or ID if you clicked "Create share" in step 3) to whoever you want to share the file with!
Warning
There may be issues with file contents not syncing upon first transfer. If this happens, simply trigger a sync update manually by editing the file.
Note
Please let all the files download and settle before accessing any file in an incoming sync group. If some files don't work, please reload both clients while on that. It may take multiple reloads.
- Add the property "sync-group" to all the files you want to share. Assign this property a name (e.g.
group-alpha) for each file. - Click on the same "Share file" button as when sharing a singular file (see above step 2 if you need help).
- Change "Share type" to "Sync group".
- Enter the name you gave to the group in step 1 in "Group ID" (e.g.
group-alpha). - Enter a PIN if you wish, then click either "Create group link" or "Create sync group".
- Your link or ID will be copied to your clipboard. Simply paste and send it to someone!
- Simply click on the link then click on "Get file" or "Get group", depending on the type. After that, you're done!
- Open Obsidian and click on the "Download shared item" button in the far left ribbon. It should be near the bottom of the list.
- Depending on whether it's an individual file or share group, adjust "Share type" accordingly if necessary.
- Copy then paste the share ID provided to you in "Share ID".
- If provided one, enter a PIN.
- Click on "Get file" or "Get group", depending on what you chose in step 1.
- You're done! Enjoy collaborating :)
OpVault will utilise a relayed P2P (peer-to-peer) system. Below is a good diagram of what’s happening:
flowchart LR
A[Host 1 updates & processing]-->B[Relay server receive & dispatch]
B-->C[Client receive & process updates]
Of course, it’s a lot more complicated than this. Hopefully there’ll be documentation at some stage as to what “processing” actually means, but the server also observes which clients it should forward the data to rather than blindly firing data at every device connected to it.
Anyway, multiplayer functionality will have these features:
- Live cursors (yay!)
- Native Obsidian collaboration
- Frictionless collaboration
- No account registration required (yippee!)
- Begin sharing in 1 click (generate link)
- Begin collaborating in 2 clicks (click link + confirm nickname)
- Data encrypted with key pairs
- Ridiculously fast updates with minimal data transfer
- Simple web UI for non-Obsidian users
- Comes with KaTeX, Excalidraw, Canvas, etc. rendering support!
I hope to implement a CRM-like systenm in the future. Please see the README for the web client under "Web Reader" for more information.
Want more features? Open a feature request as an issue and I’ll take a look into it!