mod db; mod routes; mod schema; mod state; mod types; use std::env; use axum::Router; use dotenvy::dotenv; use crate::routes::system_router::system_routers; use crate::routes::user_management_router::user_management_routs; use crate::state::AppState; #[tokio::main] async fn main() { dotenv().ok(); let database_url = env::var("DATABASE_URL").expect("DATABASE_URL must be set"); let state = AppState::new(&database_url) .unwrap_or_else(|_| panic!("Error creating pool for {}", database_url)); tracing_subscriber::fmt::init(); let app = Router::new() .nest("/rest", system_routers().merge(user_management_routs())) .with_state(state); let listener = tokio::net::TcpListener::bind("0.0.0.0:3311").await.unwrap(); let _ = axum::serve(listener, app).await; }