Add configuration variables in order to allow binding lemmy to a different adress/port
This commit is contained in:
parent
432c272286
commit
18dc7f93fb
2 changed files with 27 additions and 14 deletions
|
@ -42,18 +42,21 @@ use rand::distributions::Alphanumeric;
|
|||
use rand::{thread_rng, Rng};
|
||||
use regex::Regex;
|
||||
use std::env;
|
||||
use std::net::IpAddr;
|
||||
|
||||
pub struct Settings {
|
||||
db_url: String,
|
||||
hostname: String,
|
||||
jwt_secret: String,
|
||||
rate_limit_message: i32,
|
||||
rate_limit_message_per_second: i32,
|
||||
rate_limit_post: i32,
|
||||
rate_limit_post_per_second: i32,
|
||||
rate_limit_register: i32,
|
||||
rate_limit_register_per_second: i32,
|
||||
email_config: Option<EmailConfig>,
|
||||
pub db_url: String,
|
||||
pub hostname: String,
|
||||
pub bind: IpAddr,
|
||||
pub port: u16,
|
||||
pub jwt_secret: String,
|
||||
pub rate_limit_message: i32,
|
||||
pub rate_limit_message_per_second: i32,
|
||||
pub rate_limit_post: i32,
|
||||
pub rate_limit_post_per_second: i32,
|
||||
pub rate_limit_register: i32,
|
||||
pub rate_limit_register_per_second: i32,
|
||||
pub email_config: Option<EmailConfig>,
|
||||
}
|
||||
|
||||
pub struct EmailConfig {
|
||||
|
@ -64,7 +67,7 @@ pub struct EmailConfig {
|
|||
}
|
||||
|
||||
impl Settings {
|
||||
fn get() -> Self {
|
||||
pub fn get() -> Self {
|
||||
dotenv().ok();
|
||||
|
||||
let email_config =
|
||||
|
@ -82,6 +85,14 @@ impl Settings {
|
|||
Settings {
|
||||
db_url: env::var("DATABASE_URL").expect("DATABASE_URL must be set"),
|
||||
hostname: env::var("HOSTNAME").unwrap_or("rrr".to_string()),
|
||||
bind: env::var("BIND")
|
||||
.unwrap_or("0.0.0.0".to_string())
|
||||
.parse()
|
||||
.unwrap(),
|
||||
port: env::var("PORT")
|
||||
.unwrap_or("8536".to_string())
|
||||
.parse()
|
||||
.unwrap(),
|
||||
jwt_secret: env::var("JWT_SECRET").unwrap_or("changeme".to_string()),
|
||||
rate_limit_message: env::var("RATE_LIMIT_MESSAGE")
|
||||
.unwrap_or("30".to_string())
|
||||
|
|
|
@ -190,8 +190,10 @@ fn main() {
|
|||
|
||||
// Start chat server actor in separate thread
|
||||
let server = ChatServer::default().start();
|
||||
// Create Http server with websocket support
|
||||
|
||||
let settings = lemmy_server::Settings::get();
|
||||
|
||||
// Create Http server with websocket support
|
||||
HttpServer::new(move || {
|
||||
App::new()
|
||||
.data(server.clone())
|
||||
|
@ -210,11 +212,11 @@ fn main() {
|
|||
// static resources
|
||||
.service(actix_files::Files::new("/static", front_end_dir()))
|
||||
})
|
||||
.bind("0.0.0.0:8536")
|
||||
.bind((settings.bind, settings.port))
|
||||
.unwrap()
|
||||
.start();
|
||||
|
||||
println!("Started http server: 0.0.0.0:8536");
|
||||
println!("Started http server at {}:{}", settings.bind, settings.port);
|
||||
let _ = sys.run();
|
||||
}
|
||||
|
||||
|
|
Reference in a new issue