Browse Source

Add configuration variables in order to allow binding lemmy to a different adress/port

feature/settings-cleanup
Lyra 3 years ago
parent
commit
e72f294442
  1. 33
      server/src/lib.rs
  2. 8
      server/src/main.rs

33
server/src/lib.rs

@ -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())

8
server/src/main.rs

@ -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();
}

Loading…
Cancel
Save