42 lines
1.0 KiB
Rust
42 lines
1.0 KiB
Rust
use axum::{routing::get, Router};
|
|
use maud::{html, Markup};
|
|
use tower_http::services::ServeDir;
|
|
use tracing::info;
|
|
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
|
|
|
|
mod base;
|
|
mod tasks;
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
tracing_subscriber::registry()
|
|
.with(
|
|
tracing_subscriber::EnvFilter::try_from_default_env()
|
|
.unwrap_or_else(|_| "clego_app=debug".into()),
|
|
)
|
|
.with(tracing_subscriber::fmt::layer())
|
|
.init();
|
|
|
|
info!("initializing router...");
|
|
|
|
let router = Router::new()
|
|
.route("/", get(hello))
|
|
.nest_service("/public", ServeDir::new("public"));
|
|
let port = 3000_u16;
|
|
let listener = tokio::net::TcpListener::bind(format!("0.0.0.0:{}", port))
|
|
.await
|
|
.unwrap();
|
|
|
|
info!("router initialized, now listening on port {}", port);
|
|
axum::serve(listener, router).await.unwrap();
|
|
}
|
|
|
|
async fn hello() -> Markup {
|
|
html! {
|
|
(base::header())
|
|
main class="content" {
|
|
h1 { "Howdy!" }
|
|
}
|
|
}
|
|
}
|