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 }