Files
Atomizer/atomizer-dashboard/backend/api/main.py

60 lines
1.7 KiB
Python
Raw Normal View History

"""
Atomizer Dashboard - FastAPI Backend
Real-time optimization monitoring and control
"""
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import FileResponse
from pathlib import Path
import sys
# Add parent directory to path to import optimization_engine
sys.path.append(str(Path(__file__).parent.parent.parent.parent))
from api.routes import optimization, claude, terminal
from api.websocket import optimization_stream
# Create FastAPI app
app = FastAPI(
title="Atomizer Dashboard API",
description="Real-time optimization monitoring and control",
version="1.0.0"
)
# Configure CORS for local development
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # Allow all origins for local development
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Include routers
app.include_router(optimization.router, prefix="/api/optimization", tags=["optimization"])
app.include_router(optimization_stream.router, prefix="/api/ws", tags=["websocket"])
app.include_router(claude.router, prefix="/api/claude", tags=["claude"])
app.include_router(terminal.router, prefix="/api/terminal", tags=["terminal"])
@app.get("/")
async def root():
"""Serve the enhanced dashboard HTML"""
dashboard_path = Path(__file__).parent.parent.parent / "dashboard-enhanced.html"
return FileResponse(dashboard_path)
@app.get("/health")
async def health_check():
"""Health check endpoint"""
return {"status": "healthy"}
if __name__ == "__main__":
import uvicorn
uvicorn.run(
"main:app",
host="0.0.0.0",
port=8000,
reload=True,
log_level="info"
)