mod config; mod factory; use tower_http::cors::CorsLayer; use tracing_subscriber::EnvFilter; #[tokio::main] async fn main() { let cfg = config::Config::from_env(); tracing_subscriber::fmt() .with_env_filter(EnvFilter::from_default_env()) .init(); let infra = factory::build(&cfg).await; let app = presentation::routes::router(&infra.fed_config) .with_state(infra.state) .layer(CorsLayer::permissive()); let addr = format!("0.0.0.0:{}", cfg.port); tracing::info!("Listening on {addr}"); let listener = tokio::net::TcpListener::bind(&addr).await.unwrap(); axum::serve(listener, app).await.unwrap(); }