40 lines
1.1 KiB
Rust
40 lines
1.1 KiB
Rust
mod config;
|
|
mod msg;
|
|
mod notification;
|
|
mod pages;
|
|
|
|
use std::sync::{Arc, Mutex};
|
|
|
|
use actix_web::*;
|
|
|
|
#[actix_web::main]
|
|
async fn main() -> std::io::Result<()> {
|
|
std::env::set_var("RUST_LOG", "info");
|
|
std::env::set_var("RUST_BACKTRACE", "1");
|
|
env_logger::init();
|
|
|
|
let conf = config::Config::new();
|
|
let csrf = Arc::new(Mutex::new(web_base::csrf::CSRF::new()));
|
|
|
|
web_base::cache_bootstrap().await;
|
|
|
|
HttpServer::new(move || {
|
|
let logger = actix_web::middleware::Logger::default();
|
|
let app = App::new()
|
|
.wrap(logger)
|
|
.app_data(web::Data::new(conf.clone()))
|
|
.service(pages::index::index)
|
|
// Assets
|
|
.service(pages::assets::wallpaper)
|
|
.service(pages::assets::me_img)
|
|
.service(pages::index::public_key)
|
|
.service(pages::index::mirrors)
|
|
.service(pages::index::message_page)
|
|
.service(pages::index::message_post);
|
|
|
|
web_base::assign_pages(csrf.clone(), app)
|
|
})
|
|
.bind(("0.0.0.0", 8080))?
|
|
.run()
|
|
.await
|
|
}
|