29
src/server/main.rs
Normal file
29
src/server/main.rs
Normal file
@ -0,0 +1,29 @@
|
||||
use std::sync::Arc;
|
||||
use tokio::sync::RwLock;
|
||||
|
||||
use actix_web::{web::Data, App, HttpServer};
|
||||
|
||||
use crate::args::ServerConfig;
|
||||
|
||||
use super::routes::{healthcheck, index, login};
|
||||
|
||||
pub async fn start(args: ServerConfig, token: Arc<RwLock<Option<String>>>) -> anyhow::Result<()> {
|
||||
let addr = (args.host.clone(), args.port);
|
||||
HttpServer::new(move || {
|
||||
App::new()
|
||||
.wrap(actix_web::middleware::Logger::new(
|
||||
"\"%r\" \"-\" \"%s\" \"%a\" \"%D\"",
|
||||
))
|
||||
.app_data(Data::new(token.clone()))
|
||||
.app_data(Data::new(args.clone()))
|
||||
.service(login)
|
||||
.service(index)
|
||||
.service(healthcheck)
|
||||
.service(actix_files::Files::new("/static", args.static_dir.clone()))
|
||||
})
|
||||
.bind(addr)?
|
||||
.workers(1)
|
||||
.run()
|
||||
.await?;
|
||||
Ok(())
|
||||
}
|
Reference in New Issue
Block a user