basic backend init

This commit is contained in:
2025-07-12 01:15:20 +02:00
parent 8e24bbd88a
commit f9f55895ed
4 changed files with 1006 additions and 2 deletions

View File

@@ -1,3 +1,17 @@
fn main() {
println!("Hello, world!");
mod server;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
dotenv::dotenv().ok();
env_logger::builder()
.format_target(false)
.filter_level(log::LevelFilter::Info)
.parse_env("LOG_LEVEL")
.parse_default_env()
.init();
server::start().await?;
Ok(())
}

27
backend/src/server.rs Normal file
View File

@@ -0,0 +1,27 @@
use std::{env, error::Error};
use axum::Router;
use tokio::net::TcpListener;
use tower_http::services::ServeDir;
pub(super) async fn start() -> Result<(), Box<dyn Error>> {
let mut app = Router::new();
if !cfg!(debug_assertions) {
let frontend_path = env::var("STATIC_FRONTEND_DIR").unwrap_or("./frontend".to_string());
let frontend_service = ServeDir::new(frontend_path);
log::debug!("Registering static frontend");
app = app.fallback_service(frontend_service);
}
let addr = env::var("BIND_ADDRESS").unwrap_or("127.0.0.1:8080".to_string());
let listener = TcpListener::bind(&addr).await?;
log::info!("Listening on {}", addr);
axum::serve(listener, app).await?;
Ok(())
}