diff --git a/Using-an-alternate-base-dir.md b/Using-an-alternate-base-dir.md index 9abff5a..051ce99 100644 --- a/Using-an-alternate-base-dir.md +++ b/Using-an-alternate-base-dir.md @@ -6,20 +6,38 @@ In bitwarden_rs, with the changes in [PR#868](../pull/868), you can configure th ## Configuring the backend server -Simply configure your domain URL to include the base dir. For example, suppose you want to access your installation at `https://bitwarden.example.com/secret-path`. +Simply configure your domain URL to include the base dir. For example, suppose you want to access your installation at `https://bitwarden.example.com/secret-dir`. 1. Stop bitwarden_rs. 2. If you normally configure bitwarden_rs using the admin page, edit your `config.json` to look as follows: ```javascript { - "domain": "https://bitwarden.example.com/secret-path", + "domain": "https://bitwarden.example.com/secret-dir", // ... other values ... } ``` 3. If you normally configure bitwarden_rs via environment variables, update your config files/scripts to set the `DOMAIN` environment variable to the base URL. For example: ```sh - docker run -e DOMAIN="https://bitwarden.example.com/secret-path" ... + docker run -e DOMAIN="https://bitwarden.example.com/secret-dir" ... ``` 4. Restart bitwarden_rs. -5. You should now be able to access the web vault at `https://bitwarden.example.com/secret-path/` (note the trailing slash). For reasons not entirely clear, you may run into issues if you use `https://bitwarden.example.com/secret-path` (without the trailing slash). -6. Configure your apps or browser extensions to use `https://bitwarden.example.com/secret-path`. If you add a trailing slash, the apps and extensions will automatically remove it before saving. +5. You should now be able to access the web vault (assuming it has been modified appropriately; see the next section) at `https://bitwarden.example.com/secret-dir/` (note the trailing slash). For reasons not entirely clear, you may run into issues if you use `https://bitwarden.example.com/secret-dir` (without the trailing slash). +6. Configure your apps or browser extensions to use `https://bitwarden.example.com/secret-dir`. If you add a trailing slash, the apps and extensions will automatically remove it before saving. + +## Modifying the web vault + +The issue with the web vault is there's no simple way to configure it for a specific base URL. Instead, the code generally just assumes the web vault URL is given by `window.location.origin`, which always represents the root of the subdomain. This is true of both the upstream web vault and the patched version used in bitwarden_rs: + +* https://github.com/bitwarden/web/blob/f7f7040/src/app/services/services.module.ts#L137-L144 +* https://github.com/dani-garcia/bw_web_builds/blob/5c9de1a/patches/v2.11.0.patch#L17-L29 + +Here are some approaches you could take to modify the web vault to work at a different base dir. + +### The hard and clean way + +Modify the upstream code and/or bitwarden_rs patches and rebuild the web vault. (Someone else can document this if they're interested.) + +### The quick and dirty way + +1. Enter a shell in the bitwarden_rs container: `docker exec -it /bin/sh` +2. Patch the web vault: `sed -i "s|window\.location\.origin|window.location.origin+'/secret-dir'|g" /web-vault/app/main*.js` (of course, replace `/secret-dir` with your actual base dir) \ No newline at end of file