From d5e0750c9babd0853241f5b11eafaa90b0952591 Mon Sep 17 00:00:00 2001 From: Nick Fox Date: Tue, 1 Jan 2019 01:32:06 +0000 Subject: [PATCH] Created Enabling WebSocket notifications (markdown) --- Enabling-WebSocket-notifications.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Enabling-WebSocket-notifications.md diff --git a/Enabling-WebSocket-notifications.md b/Enabling-WebSocket-notifications.md new file mode 100644 index 0000000..da24574 --- /dev/null +++ b/Enabling-WebSocket-notifications.md @@ -0,0 +1,21 @@ +*Important: This does not apply to the mobile clients, which use push notifications.* + +To enable WebSockets notifications, an external reverse proxy is necessary, and it must be configured to do the following: +- Route the `/notifications/hub` endpoint to the WebSocket server, by default at port `3012`, making sure to pass the `Connection` and `Upgrade` headers. (Note the port can be changed with `WEBSOCKET_PORT` variable) +- Route everything else, including `/notifications/hub/negotiate`, to the standard Rocket server, by default at port `80`. +- If using Docker, you may need to map both ports with the `-p` flag + +Example configurations are included in the [PROXY.md](https://github.com/dani-garcia/bitwarden_rs/blob/master/PROXY.md) file. + +Then you need to enable WebSockets negotiation on the bitwarden_rs side by setting the `WEBSOCKET_ENABLED` variable to `true`: + +```sh +docker run -d --name bitwarden \ + -e WEBSOCKET_ENABLED=true \ + -v /bw-data/:/data/ \ + -p 80:80 \ + -p 3012:3012 \ + mprasil/bitwarden:latest +``` + +Note: The reason for this workaround is the lack of support for WebSockets from Rocket (though [it's a planned feature](https://github.com/SergioBenitez/Rocket/issues/90)), which forces us to launch a secondary server on a separate port. \ No newline at end of file