]> Untitled Git - lemmy.git/commitdiff
Add configuration variables in order to allow binding lemmy to a different adress...
authorLyra <teromene@teromene.fr>
Fri, 6 Dec 2019 19:36:56 +0000 (20:36 +0100)
committerLyra <teromene@teromene.fr>
Fri, 6 Dec 2019 19:36:56 +0000 (20:36 +0100)
server/src/lib.rs
server/src/main.rs

index 1ff13aab1b90e0fc515d04ff5b77102cc40ccda4..2568143d36e99019c432f557b0142a320eed9051 100644 (file)
@@ -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())
index 9b06f980768c152bdfa65f54af3895595cc0c4be..60e85e5769cdc61bd8f502c48f320fec916ac7b0 100644 (file)
@@ -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();
 }