mod config;
mod files;
mod routes;
mod views;
use actix_web::{App, HttpServer, web};
use config::AppConfig;
use routes::{
index, serve_fixi_js, serve_fixi_skill, serve_moxi_skill, serve_paxi_skill, serve_rexi_skill,
serve_ssexi_skill, serve_tachyons,
};
use crate::routes::up;
#[actix_web::main]
async fn main() -> std::io::Result<()> {
let config = AppConfig::from_env();
let base_url = config.base_url();
let port = config.port.parse().unwrap_or(80);
println!("Starting fixi CDN server on {}", base_url);
HttpServer::new(move || {
App::new()
.app_data(web::Data::new(config.clone()))
.service(index)
.service(serve_tachyons)
.service(serve_fixi_js)
.service(serve_fixi_skill)
.service(serve_moxi_skill)
.service(serve_paxi_skill)
.service(serve_ssexi_skill)
.service(serve_rexi_skill)
.service(up)
})
.bind(("0.0.0.0", port))?
.run()
.await
}