Refactoring work to support multi-tenancy and multiple storage, database backends (#598)
* Backend infrastructure * New backend configuration work * Factor out KV prefixing * Don't put assets in the manifest cache * Removed fancy authentication stuff * Documentation updates
This commit is contained in:
@@ -1,8 +1,5 @@
|
||||
SilverBullet supports simple authentication for one or many users.
|
||||
SilverBullet supports simple authentication for a single user.
|
||||
|
||||
**Note**: This feature is experimental and will likely change significantly over time.
|
||||
|
||||
## Single User
|
||||
By simply passing the `--user` flag with a username:password combination, you enable authentication for a single user. For instance:
|
||||
|
||||
```shell
|
||||
@@ -11,36 +8,10 @@ silverbullet --user pete:1234 .
|
||||
|
||||
Will let `pete` authenticate with password `1234`.
|
||||
|
||||
## Multiple users
|
||||
Although multi-user support is still rudimentary, it is possible to have multiple users authenticate. These users can be configured using a JSON authentication file that SB can generate for you. It is usually named `.auth.json`.
|
||||
|
||||
You can enable authentication as follows:
|
||||
Alternative, the same information can be passed in via the `SB_USER` environment variable, e.g.
|
||||
|
||||
```shell
|
||||
silverbullet --auth /path/to/.auth.json
|
||||
SB_USER=pete:1234 silverbullet .
|
||||
```
|
||||
|
||||
To create and manage an `.auth.json` file, you can use the following commands:
|
||||
|
||||
* `silverbullet user:add --auth /path/to/.auth.json [username]` to add a user
|
||||
* `silverbullet user:delete --auth /path/to/.auth.json [username]` to delete a user
|
||||
* `silverbullet user:passwd --auth /path/to/.auth.json [username]` to update a password
|
||||
|
||||
If the `.auth.json` file does not yet exist, it will be created.
|
||||
|
||||
When SB is run with a `--auth` flag, this fill will automatically be reloaded upon change.
|
||||
|
||||
### Group management
|
||||
While this functionality is not yet used, users can also be added to groups which can be arbitrarily named. The `admin` group will likely have a special meaning down the line.
|
||||
|
||||
When adding a user, you can add one more `-G` or `--group` flags:
|
||||
|
||||
```shell
|
||||
silverbullet user:add --auth /path/to/.auth.json -G admin pete
|
||||
```
|
||||
|
||||
And you can update these groups later with `silverbullet user:chgrp`:
|
||||
|
||||
```shell
|
||||
silverbullet user:chgrp --auth /path/to/.auth.json -G admin pete
|
||||
```
|
||||
This is especially convenient when deploying using Docker
|
||||
|
||||
@@ -1,6 +1,15 @@
|
||||
An attempt at documenting the changes/new features introduced in each
|
||||
release.
|
||||
|
||||
---
|
||||
|
||||
## Next
|
||||
* Removed built-in multi-user [[Authentication]], `SB_AUTH` is no longer supported, use `--user` or `SB_USER` instead, or an authentication layer such as [[Authelia]]
|
||||
* Technical refactoring in preparation of multi-tenant deployment support (allowing you to run a single SB instance and serve multiple spaces and users at the same time)
|
||||
* Lazy everything: plugs are now lazily loaded (after a first load, manifests are cached). On the server side, a whole lot of infrastructure is now only booted once the first HTTP request comes in
|
||||
|
||||
---
|
||||
|
||||
## 0.5.8
|
||||
* Various bugfixes, primarily related to the new way of running docker containers, which broke things for some people. Be sure to have a look at the new [[Install/Local$env|environment variable]] configuration options
|
||||
|
||||
|
||||
@@ -140,5 +140,4 @@ You can configure SB with environment variables instead of flags, which is proba
|
||||
* `SB_HOSTNAME`: Set to the hostname to bind to (defaults to `127.0.0.0`, set to `0.0.0.0` to accept outside connections)
|
||||
* `SB_PORT`: Sets the port to listen to, e.g. `SB_PORT=1234`
|
||||
* `SB_FOLDER`: Sets the folder to expose, e.g. `SB_FOLDER=/space`
|
||||
* `SB_AUTH`: Loads an [[Authentication]] database from a (JSON encoded) string, e.g. `SB_AUTH=$(cat /path/to/.auth.json)`
|
||||
* `SB_SYNC_ONLY`: Runs the server in a "dumb" space store-only mode (not indexing content or keeping other state), e.g. `SB_SYNC_ONLY=1`. This will disable the Online [[Client Modes]] altogether (and not even show the sync icon in the top bar). Conceptually, [silverbullet.md](https://silverbullet.md) runs in this mode.
|
||||
|
||||
Reference in New Issue
Block a user