#!/usr/bin/env python3 """ Start Dashboard Server for Protocol Mapping Testing """ import os import uvicorn from fastapi import FastAPI from fastapi.staticfiles import StaticFiles from fastapi.templating import Jinja2Templates from fastapi.responses import HTMLResponse from fastapi import Request from src.dashboard.api import dashboard_router from src.dashboard.templates import DASHBOARD_HTML # Create FastAPI app app = FastAPI(title="Calejo Control Adapter Dashboard", version="1.0.0") # Include dashboard router app.include_router(dashboard_router) # Serve static files app.mount("/static", StaticFiles(directory="static"), name="static") @app.get("/", response_class=HTMLResponse) async def serve_dashboard(request: Request): """Serve the main dashboard interface""" return HTMLResponse(DASHBOARD_HTML) @app.get("/dashboard", response_class=HTMLResponse) async def serve_dashboard_alt(request: Request): """Alternative route for dashboard""" return HTMLResponse(DASHBOARD_HTML) @app.get("/health") async def health_check(): """Health check endpoint""" return {"status": "healthy", "service": "dashboard"} if __name__ == "__main__": # Get port from environment variable or default to 8080 port = int(os.getenv("REST_API_PORT", "8080")) print("🚀 Starting Calejo Control Adapter Dashboard...") print(f"📊 Dashboard available at: http://localhost:{port}") print("📊 Protocol Mapping tab should be visible in the navigation") uvicorn.run( app, host="0.0.0.0", port=port, log_level="info" )