2024-01-08 20:09:26 +02:00
|
|
|
use std::net::SocketAddr;
|
|
|
|
|
|
|
|
use axum::Router;
|
|
|
|
use dotenv::dotenv;
|
|
|
|
use tokio::net::TcpListener;
|
|
|
|
use tower_http::services::ServeDir;
|
|
|
|
|
|
|
|
mod api;
|
|
|
|
mod db;
|
|
|
|
mod endpoints;
|
|
|
|
mod entity;
|
|
|
|
|
|
|
|
#[tokio::main(flavor = "multi_thread")]
|
|
|
|
async fn main() {
|
|
|
|
dotenv().ok();
|
|
|
|
|
|
|
|
let api_routes = api::routes().await.expect("Unable to create api routes");
|
|
|
|
|
2024-01-09 17:23:40 +02:00
|
|
|
let mut routes = Router::new()
|
|
|
|
.nest("/api", api_routes);
|
|
|
|
|
|
|
|
|
|
|
|
// If in release mod, serve static files
|
|
|
|
if !cfg!(debug_assertions) {
|
|
|
|
routes = routes.nest_service("/", ServeDir::new("./frontend/dist"))
|
|
|
|
.fallback_service(ServeDir::new("./frontend/dist"));
|
|
|
|
}
|
2024-01-08 20:09:26 +02:00
|
|
|
|
|
|
|
let addr = SocketAddr::from(([127, 0, 0, 1], 8080));
|
|
|
|
|
|
|
|
let listener = TcpListener::bind(addr).await.unwrap();
|
|
|
|
|
2024-01-11 12:52:41 +02:00
|
|
|
axum::serve(listener, routes.into_make_service_with_connect_info::<SocketAddr>())
|
2024-01-08 20:09:26 +02:00
|
|
|
.await
|
|
|
|
.unwrap();
|
|
|
|
}
|