use std::time::Duration; use actix_web::web::Data; use actix_web::{middleware, App, HttpServer}; use sea_orm::ConnectOptions; #[actix_web::main] async fn main() -> std::io::Result<()> { { use tracing_subscriber::prelude::*; use tracing_subscriber::{fmt, EnvFilter}; let fmt_layer = fmt::layer().with_target(false); let filter_layer = EnvFilter::try_from_default_env() .or_else(|_| EnvFilter::try_new("info")) .unwrap(); tracing_subscriber::registry() .with(filter_layer) .with(fmt_layer) .init(); } let mut db_opts = ConnectOptions::new("postgres://postgres@localhost/oswilno".to_string()); db_opts .max_connections(100) .min_connections(5) .connect_timeout(Duration::from_secs(8)) .idle_timeout(Duration::from_secs(8)) .sqlx_logging(true); let conn: sea_orm::DatabaseConnection = sea_orm::Database::connect(db_opts).await.unwrap(); let session_config = oswilno_session::SessionConfigurator::new(); let l10n = oswilno_view::TranslationStorage::new(); HttpServer::new(move || { let session_config = session_config.clone(); App::new() .wrap(middleware::Logger::default()) .wrap(session_config.factory()) .app_data(Data::new(conn.clone())) .app_data(Data::new(l10n.clone())) .configure(oswilno_parking_space::mount) .configure(oswilno_admin::mount) .configure(web_assets::configure) .configure(|c| session_config.app_data(c)) }) .bind(("0.0.0.0", 8080))? .run() .await }