From 79e6bc3f9a3f9281b49e09221e4312842b6093dd Mon Sep 17 00:00:00 2001 From: pacnpal <183241239+pacnpal@users.noreply.github.com> Date: Wed, 29 Jan 2025 12:36:07 -0500 Subject: [PATCH] feat(healthcheck): enhance health check functionality and serve favicon directly --- healthcheck.py | 5 +++-- src/simpleguardhome/main.py | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/healthcheck.py b/healthcheck.py index 030ef2e..e979ed8 100644 --- a/healthcheck.py +++ b/healthcheck.py @@ -5,10 +5,11 @@ import os def check_health(): try: - host = os.environ.get('ADGUARD_HOST', 'http://localhost') + host = os.environ.get('ADGUARD_HOST', 'localhost') port = os.environ.get('ADGUARD_PORT', '8000') + url = f'http://{host}:{port}/health' with httpx.Client() as client: - response = client.get('http://localhost:8000/health') + response = client.get(url) response.raise_for_status() print('✅ Service is healthy') sys.exit(0) diff --git a/src/simpleguardhome/main.py b/src/simpleguardhome/main.py index 33fbe64..86c2440 100644 --- a/src/simpleguardhome/main.py +++ b/src/simpleguardhome/main.py @@ -59,10 +59,19 @@ templates = Jinja2Templates(directory=str(templates_path)) # Mount static files from package directory app.mount("/static", StaticFiles(directory=str(Path(__file__).parent)), name="static") -# Mount favicon.ico at root -static_files_path = Path(__file__).parent -app.mount("/favicon.ico", - StaticFiles(directory=str(static_files_path)), name="favicon") +# Serve favicon.ico directly +from fastapi.responses import FileResponse +favicon_path = Path(__file__).parent / "favicon.ico" + +@app.get("/favicon.ico") +async def favicon(): + """Serve favicon.""" + return FileResponse(favicon_path) + +@app.get("/health") +async def health_check(): + """Health check endpoint.""" + return {"status": "healthy"} # Response models matching AdGuard spec