diff --git a/docker-compose.example.yml b/docker-compose.example.yml index 8240232..71258f1 100644 --- a/docker-compose.example.yml +++ b/docker-compose.example.yml @@ -88,7 +88,7 @@ services: nfoguard: condition: service_healthy healthcheck: - test: ["CMD", "curl", "-f", "http://localhost:8081/"] + test: ["CMD", "curl", "-f", "http://localhost:8081/health"] interval: 30s timeout: 10s retries: 3 diff --git a/start_web.py b/start_web.py index 7d0cfdd..a599e1a 100644 --- a/start_web.py +++ b/start_web.py @@ -5,6 +5,7 @@ Simple script to start web interface using existing config system """ import os import sys +import time import uvicorn from fastapi import FastAPI from fastapi.staticfiles import StaticFiles @@ -82,6 +83,22 @@ def setup_static_files(app: FastAPI) -> None: # Return 204 No Content if no favicon found from fastapi import Response return Response(status_code=204) + + # Health check endpoint for Docker + @app.get("/health") + async def health_check(): + """Health check endpoint for Docker container monitoring""" + try: + # Basic health check - verify the web service is responsive + return { + "status": "healthy", + "service": "nfoguard-web", + "timestamp": time.time(), + "version": "2.8.0-web" + } + except Exception as e: + from fastapi import HTTPException + raise HTTPException(status_code=503, detail=f"Health check failed: {e}") def main():