}
}
+pub(in crate::settings) static DEFAULT_DATABASE_USER: &str = "lemmy";
+pub(in crate::settings) static DEFAULT_DATABASE_PORT: i32 = 5432;
+pub(in crate::settings) static DEFAULT_DATABASE_DB: &str = "lemmy";
+pub static DEFAULT_DATABASE_POOL_SIZE: u32 = 5;
+
impl Default for DatabaseConfig {
fn default() -> Self {
Self {
- user: "lemmy".into(),
+ user: Some(DEFAULT_DATABASE_USER.to_string()),
password: "password".into(),
host: "localhost".into(),
- port: 5432,
- database: "lemmy".into(),
- pool_size: 5,
+ port: Some(DEFAULT_DATABASE_PORT),
+ database: Some(DEFAULT_DATABASE_DB.to_string()),
+ pool_size: Some(DEFAULT_DATABASE_POOL_SIZE),
}
}
}
use crate::{
location_info,
- settings::structs::{
- CaptchaConfig,
- DatabaseConfig,
- EmailConfig,
- FederationConfig,
- RateLimitConfig,
- Settings,
- SetupConfig,
+ settings::{
+ defaults::{DEFAULT_DATABASE_DB, DEFAULT_DATABASE_PORT, DEFAULT_DATABASE_USER},
+ structs::{
+ CaptchaConfig,
+ DatabaseConfig,
+ EmailConfig,
+ FederationConfig,
+ RateLimitConfig,
+ Settings,
+ SetupConfig,
+ },
},
LemmyError,
};
use merge::Merge;
use std::{env, fs, io::Error, net::IpAddr, sync::RwLock};
-pub(crate) mod defaults;
+pub mod defaults;
pub mod structs;
static CONFIG_FILE: &str = "config/config.hjson";
let conf = self.database();
format!(
"postgres://{}:{}@{}:{}/{}",
- conf.user, conf.password, conf.host, conf.port, conf.database,
+ conf
+ .user
+ .unwrap_or_else(|| DEFAULT_DATABASE_USER.to_string()),
+ conf.password,
+ conf.host,
+ conf.port.unwrap_or(DEFAULT_DATABASE_PORT),
+ conf
+ .database
+ .unwrap_or_else(|| DEFAULT_DATABASE_DB.to_string()),
)
}
#[derive(Debug, Deserialize, Clone)]
pub struct DatabaseConfig {
- pub user: String,
+ pub user: Option<String>,
pub password: String,
pub host: String,
- pub port: i32,
- pub database: String,
- pub pool_size: u32,
+ pub port: Option<i32>,
+ pub database: Option<String>,
+ pub pool_size: Option<u32>,
}
#[derive(Debug, Deserialize, Clone)]
mkdir -p volumes/pictrs
sudo chown -R 991:991 volumes/pictrs
sudo docker build ../../ --file ../dev/volume_mount.dockerfile -t lemmy-dev:latest
-sudo docker-compose up -d
+sudo docker-compose up
RUN apt-get install -y libpq-dev espeak
# Copy resources
-COPY config/defaults.hjson /config/defaults.hjson
COPY --from=rust /app/lemmy_server /app/lemmy
EXPOSE 8536
use lemmy_server::{api_routes, code_migrations::run_advanced_migrations, scheduled_tasks};
use lemmy_utils::{
rate_limit::{rate_limiter::RateLimiter, RateLimit},
- settings::structs::Settings,
+ settings::{defaults::DEFAULT_DATABASE_POOL_SIZE, structs::Settings},
LemmyError,
};
use lemmy_websocket::{chat_server::ChatServer, LemmyContext};
};
let manager = ConnectionManager::<PgConnection>::new(&db_url);
let pool = Pool::builder()
- .max_size(settings.database().pool_size)
+ .max_size(
+ settings
+ .database()
+ .pool_size
+ .unwrap_or(DEFAULT_DATABASE_POOL_SIZE),
+ )
.build(manager)
.unwrap_or_else(|_| panic!("Error connecting to {}", db_url));