46 lines
1.4 KiB
Rust
46 lines
1.4 KiB
Rust
mod config;
|
|
mod msg;
|
|
mod notification;
|
|
mod pages;
|
|
|
|
use actix_web::{web, App};
|
|
|
|
#[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();
|
|
web_base::bootstrap::cache_bootstrap().await;
|
|
|
|
let manifest = web_base::Manifest::new(&conf.name().unwrap())
|
|
.set_short_name(&conf.name().unwrap())
|
|
.set_start_url("/")
|
|
.set_background_color(&conf.bg_color().unwrap())
|
|
.add_icon("/assets/me.png", "2000x2000", "image/png")
|
|
.set_display(web_base::ManifestDisplay::MinimalUI);
|
|
|
|
web_base::map!(
|
|
web_base::Site::new()
|
|
.enable_bootstrap(true)
|
|
.enable_scaling(true)
|
|
.enable_favicon("/assets/me".to_string())
|
|
.add_manifest(manifest),
|
|
|x: App<_>| {
|
|
x.app_data(web::Data::new(conf.clone()))
|
|
.service(pages::index::index)
|
|
// Assets
|
|
.service(pages::assets::wallpaper)
|
|
.service(pages::assets::me_img)
|
|
.service(pages::assets::me_img_png)
|
|
.service(pages::index::public_key)
|
|
.service(pages::index::mirrors)
|
|
.service(pages::index::message_page)
|
|
.service(pages::index::message_post)
|
|
}
|
|
)
|
|
.bind(("0.0.0.0", 8080))?
|
|
.run()
|
|
.await
|
|
}
|