|
|
|
@ -222,6 +222,8 @@ make_config! {
|
|
|
|
|
data_folder: String, false, def, "data".to_string();
|
|
|
|
|
/// Database URL
|
|
|
|
|
database_url: String, false, auto, |c| format!("{}/{}", c.data_folder, "db.sqlite3");
|
|
|
|
|
/// Database connection pool size
|
|
|
|
|
database_max_conns: u32, false, def, 10;
|
|
|
|
|
/// Icon cache folder
|
|
|
|
|
icon_cache_folder: String, false, auto, |c| format!("{}/{}", c.data_folder, "icon_cache");
|
|
|
|
|
/// Attachments folder
|
|
|
|
@ -429,6 +431,14 @@ fn validate_config(cfg: &ConfigItems) -> Result<(), Error> {
|
|
|
|
|
// Validate connection URL is valid and DB feature is enabled
|
|
|
|
|
DbConnType::from_url(&cfg.database_url)?;
|
|
|
|
|
|
|
|
|
|
let limit = 256;
|
|
|
|
|
if cfg.database_max_conns < 1 || cfg.database_max_conns > limit {
|
|
|
|
|
err!(format!(
|
|
|
|
|
"`DATABASE_MAX_CONNS` contains an invalid value. Ensure it is between 1 and {}.",
|
|
|
|
|
limit,
|
|
|
|
|
));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let dom = cfg.domain.to_lowercase();
|
|
|
|
|
if !dom.starts_with("http://") && !dom.starts_with("https://") {
|
|
|
|
|
err!("DOMAIN variable needs to contain the protocol (http, https). Use 'http[s]://bw.example.com' instead of 'bw.example.com'");
|
|
|
|
|