use axum::{Extension, http::HeaderMap, response::Html}; use super::super::AdminConfig; use super::status::{AdminStatusError, check_basic_auth}; /// `GET /admin` — HTML dashboard that polls `/admin/status` for live stats. /// /// Protected by the same HTTP Basic Auth as the JSON endpoint. pub async fn admin_page( Extension(config): Extension, headers: HeaderMap, ) -> Result, AdminStatusError> { if !check_basic_auth(&headers, &config.admin_password) { return Err(AdminStatusError::Unauthorized); } Ok(Html(PAGE)) } /// The full HTML page, assembled at compile time from separate CSS/JS files. const PAGE: &str = concat!( r#" lightrail admin

lightrail admin

loading…
"#, );