vw_small

Hardened fork of Vaultwarden (https://github.com/dani-garcia/vaultwarden) with fewer features.
git clone https://git.philomathiclife.com/repos/vw_small
Log | Files | Refs | README

commit 72de16fb8648a809c06056388fc0bc934eb6930c
parent d7eeaaf24952bc893ef6209d428c8d9b775b618b
Author: Daniel GarcĂ­a <dani-garcia@users.noreply.github.com>
Date:   Mon, 18 Feb 2019 16:10:16 +0100

Merge pull request #404 from mprasil/disable_wal

Add an option to not enable WAL (should help in #399)
Diffstat:
M.env.template | 8++++++++
Msrc/config.rs | 3+++
Msrc/main.rs | 12+++++++-----
3 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/.env.template b/.env.template @@ -43,6 +43,14 @@ ## It's recommended to also set 'ROCKET_CLI_COLORS=off' # LOG_FILE=/path/to/log +## Enable WAL for the DB +## Set to false to avoid enabling WAL during startup. +## Note that if the DB already has WAL enabled, you will also need to disable WAL in the DB, +## this setting only prevents bitwarden_rs from automatically enabling it on start. +## Please read project wiki page about this setting first before changing the value as it can +## cause performance degradation or might render the service unable to start. +# ENABLE_DB_WAL=true + ## Disable icon downloading ## Set to true to disable icon downloading, this would still serve icons from $ICON_CACHE_FOLDER, ## but it won't produce any external network request. Needs to set $ICON_CACHE_TTL to 0, diff --git a/src/config.rs b/src/config.rs @@ -253,6 +253,9 @@ make_config! { extended_logging: bool, false, def, true; /// Log file path log_file: String, false, option; + + /// Enable DB WAL |> Turning this off might lead to worse performance, but might help if using bitwarden_rs on some exotic filesystems, that do not support WAL. Please make sure you read project wiki on the topic before changing this setting. + enable_db_wal: bool, false, def, true; }, /// Yubikey settings diff --git a/src/main.rs b/src/main.rs @@ -168,11 +168,13 @@ fn check_db() { } // Turn on WAL in SQLite - use diesel::RunQueryDsl; - let connection = db::get_connection().expect("Can't conect to DB"); - diesel::sql_query("PRAGMA journal_mode=wal") - .execute(&connection) - .expect("Failed to turn on WAL"); + if CONFIG.enable_db_wal() { + use diesel::RunQueryDsl; + let connection = db::get_connection().expect("Can't conect to DB"); + diesel::sql_query("PRAGMA journal_mode=wal") + .execute(&connection) + .expect("Failed to turn on WAL"); + } } fn check_rsa_keys() {