-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Configuration overview
In vaultwarden, you can perform configuration either via environment variables or an admin page (which writes settings to a config.json
file under your data directory). It's important to note that each setting in config.json
overrides the corresponding environment variable setting (if it exists). For example, if you set the environment variable DOMAIN=https://bitwarden.example.com
, but your config.json
includes "domain": "https://vw.example.com"
, then vaultwarden will generate various links based on what's in the config file (https://vw.example.com
).
A common source of confusion is enabling the admin page (which creates the config.json
file), changing some settings via the admin page (which sets the corresponding values in config.json
), then later trying to change those settings via environment variable (which doesn't work because config.json
overrides env vars). To avoid this confusion, it's highly recommended to stick to one configuration method or the other; that is, configure entirely via environment variables, or entirely via config.json
(whether using the admin page or editing config.json
directly).
Note that config settings under the Read-Only Config
section of the admin page can only be set via environment variables, so you must restart vaultwarden to make changes to them. If you keep these environment variables in a file named .env
, you can load them as follows:
- With standalone vaultwarden, by putting
.env
in the current working directory. vaultwarden will attempt to load this file on startup. - With Docker, by using
docker run --env-file <env-file> ...
(to have Docker load the env file) ordocker run -v /path/to/.env:/.env
(to have vaultwarden load the.env
file from inside the container). If you use--env-file
, note that Docker does not unquote values, so make sure to usekey=val
rather thankey="val"
orkey='val'
. - With Docker Compose, by using the
env_file
directive.
You can find the list of environment variables you can set at
https://github.com/dani-garcia/vaultwarden/blob/master/.env.template
If you enable the admin page, that will also show the full list of config options.
In case there are any errors or omissions, the source of truth is
https://github.com/dani-garcia/vaultwarden/blob/master/src/config.rs (search for make_config! {
)
Or you can use this direct link if your (Chromium-based) browser supports text fragments:
Make sure to set the DOMAIN
environment variable (or domain
in the config file) to the URL you use to access your vaultwarden instance. If you don't, it's likely that various functionality will break mysteriously. Some examples:
https://bitwarden.example.com
-
https://bitwarden.example.com:8443
(non-default port) -
https://host.example.com/bitwarden
(subdir hosting -- avoid URL-rewriting tricks whenever possible)
- Which container image to use
- Starting a container
- Using Docker Compose
- Using Podman
- Updating the vaultwarden image
- Overview
- Enabling admin page
- SMTP configuration
- Disable registration of new users
- Disable invitations
- Enabling WebSocket notifications
- Enabling Mobile Client push notification
- Enabling SSO support using OpenId Connect
- Other configuration
- Using the MariaDB (MySQL) Backend
- Using the PostgreSQL Backend
- Running without WAL enabled
- Migrating from MariaDB (MySQL) to SQLite
- Hardening Guide
- Password hint display
- Enabling U2F and FIDO2 WebAuthn authentication
- Enabling YubiKey OTP authentication
- Fail2Ban Setup
- Fail2Ban + ModSecurity + Traefik + Docker
- Translating the email templates
- Translating admin page
- Customize Vaultwarden CSS
- Using custom website icons
- Disabling or overriding the Vault interface hosting
- Building binary
- Building your own docker image
- Git hooks
- Differences from the upstream API implementation