1
0

Collab support on front page

This commit is contained in:
Zef Hemel 2022-11-27 11:43:10 +01:00
parent 33736d2622
commit da4027f4bc
2 changed files with 15 additions and 2 deletions

View File

@ -13,6 +13,7 @@ Lets have a look at some of its features.
* Use [[🔌 Core/Slash Commands|slash commands]] to perform common text editing operations.
* Supports annotating pages with metadata (using [[Frontmatter]]).
* Provides a platform for [End-user Programming](https://www.inkandswitch.com/end-user-programming/) through its support of [[🔌 Directive|directives]] (such as [[🔌 Directive/Query|#query]]), which make parts of pages _dynamic_.
* Experimental [[🔌 Collab|real-time collaboration support]].
* Robust extension mechanism using [[🔌 Plugs]]
* Self hosted: you own your data. All content is stored as plain files in a folder on disk. Back up, sync, edit, script with any other tools you like.
* Silver Bullet is [open source, MIT licensed](https://github.com/silverbulletmd/silverbullet) software.

View File

@ -7,7 +7,16 @@ share-support: true
The Collab plug implements real-time “Google Doc” style collaboration with other Silver Bullet users using the [Yjs](https://yjs.dev) library. It supports:
* Real-time editing
* Showing other participants cursors
* Showing other participants cursors and selections
The philosophy behind this plug is that by default your data is private and not shared with others. However, there are cases where you would like to collaborate on individual pages.
Some example use cases:
* Sharing a meeting agenda or meeting notes
* Writing or editing an article with others
The collab plug allows you to share individual pages. All collaborators will keep their own local copy on disk (which they can backup, and you probably should), but the “source of truth” moves to a central collaboration server. There is one deployed at `wss://collab.silverbullet.md`, but you can also run your own, see [[@deploy|the instructions below]]. The collab plugin leverages SBs [[🔌 Share]] infrastructure.
To use it:
@ -21,8 +30,11 @@ To use it:
The Collab plug uses Yjs for real-time collaboration via a websocket. A random ID is assigned to every shared page, and a copy of this page (as well as its history) will be stored on the collaboration server. Therefore, be cautious about what you share, especially when using a public collab server like `collab.silverbullet.md`. For “production use” we recommend deploying your own collab server.
## Deploying your own collab server
$deploy
A detailed description of how to deploy your own collab server, [can be found here](https://github.com/yjs/y-websocket). The short version is:
HOST=0.0.0.0 PORT=1337 YPERSISTENCE=./store npx y-websocket
```shell
HOST=0.0.0.0 PORT=1337 YPERSISTENCE=./store npx y-websocket
```
This will run the `y-websocket` server on port 1337, and store page data persistently in `./store`. You can connect to this server via `ws://ip:1337`. To use SSL, put a TLS server in front of it, in which case you can use `wss://` instead.