use std::{env, net::SocketAddr}; use axum::{Json, Router, routing::get}; use serde_json::json; use tokio::net::TcpListener; use tracing::info; #[tokio::main] async fn main() -> Result<(), Box> { tracing_subscriber::fmt() .with_env_filter( env::var("MCPAAS_LOG_LEVEL") .unwrap_or_else(|_| "admin_api=info,tower_http=info".into()), ) .init(); let bind_addr = env::var("MCPAAS_ADMIN_BIND").unwrap_or_else(|_| "0.0.0.0:3001".into()); let socket_addr: SocketAddr = bind_addr.parse()?; let app = Router::new().route("/health", get(health)); let listener = TcpListener::bind(socket_addr).await?; info!("admin-api listening on {}", socket_addr); axum::serve(listener, app).await?; Ok(()) } async fn health() -> Json { Json(json!({ "service": "admin-api", "status": "ok" })) }