mylloon.fr/src/main.rs

66 lines
1.9 KiB
Rust
Raw Normal View History

2023-02-09 11:42:39 +01:00
use actix_files::Files;
2023-02-16 21:59:04 +01:00
use actix_web::{middleware::DefaultHeaders, web, App, HttpServer};
2023-04-14 11:30:47 +02:00
use std::io::Result;
2023-04-14 18:03:30 +02:00
use crate::routes::{
agreements, api_v1, blog, contact, contrib, cours, cv, gaming, index, memorial, not_found,
2023-08-16 10:58:41 +02:00
portfolio, setup, web3,
2023-04-14 18:03:30 +02:00
};
2023-04-14 11:44:49 +02:00
2023-02-08 20:49:05 +01:00
mod config;
2023-02-09 11:19:53 +01:00
mod template;
2023-02-20 15:14:08 +01:00
2023-04-14 11:44:49 +02:00
mod misc;
mod routes;
2023-04-14 11:30:58 +02:00
2023-02-08 20:49:05 +01:00
#[actix_web::main]
2023-04-14 11:30:47 +02:00
async fn main() -> Result<()> {
2023-02-09 11:42:39 +01:00
let config = config::get_config("./config/config.toml");
2023-02-08 20:49:05 +01:00
2023-04-09 15:19:23 +02:00
let addr = ("0.0.0.0", config.fc.port.unwrap());
2023-02-09 11:36:22 +01:00
println!(
"Listening to {}://{}:{}",
2023-04-24 12:18:21 +02:00
config.to_owned().fc.scheme.unwrap(),
addr.0,
addr.1
);
HttpServer::new(move || {
App::new()
2023-04-24 12:18:21 +02:00
.app_data(web::Data::new(config.to_owned()))
.wrap(
DefaultHeaders::new()
.add((
"Onion-Location",
config.fc.onion.as_deref().unwrap_or_default(),
))
.add(("Server", format!("ewp/{}", env!("CARGO_PKG_VERSION"))))
.add(("Permissions-Policy", "interest-cohort=()")),
)
2023-05-23 10:04:02 +02:00
.service(web::scope("/api").service(web::scope("v1").service(api_v1::love)))
.service(index::page)
.service(agreements::security)
.service(agreements::humans)
.service(agreements::robots)
.service(agreements::sitemap)
2023-04-14 11:30:58 +02:00
.service(blog::index)
2023-04-26 12:50:08 +02:00
.service(blog::rss)
2023-04-14 11:30:58 +02:00
.service(blog::page)
2023-08-16 10:52:53 +02:00
.service(contrib::page)
2023-04-16 13:18:15 +02:00
.service(cours::page)
2023-04-18 20:33:47 +02:00
.service(cv::page)
2023-08-16 10:52:53 +02:00
.service(gaming::page)
2023-08-16 10:58:41 +02:00
.service(memorial::page)
.configure(contact::pages)
2023-08-16 10:52:53 +02:00
.service(portfolio::page)
2023-08-16 10:51:58 +02:00
.service(setup::page)
2023-08-16 10:52:53 +02:00
.service(web3::page)
2023-04-24 12:18:21 +02:00
.service(Files::new("/", config.static_location.to_owned()))
.default_service(web::to(not_found::page))
})
.bind(addr)?
.run()
.await
2023-02-02 11:06:27 +01:00
}