Files
monitor/docs/architecture.md
2025-12-27 01:17:10 +01:00

1.4 KiB

Architecture Overview

The ASF Infrastructure Monitor is a lightweight, real-time monitoring solution designed to track the health of local servers and web services.

System Components

graph TD
    User((User Browser))
    Caddy[Caddy Proxy]
    MonitorApp[Monitor App Container]
    
    subgraph "Local Network / Internet"
        PC[Ubuntu Server PC]
        PI[Raspberry Pi]
        WebServices[Web Services]
    end

    User -->|HTTPS| Caddy
    Caddy -->|HTTP| MonitorApp
    
    MonitorApp -->|SSH| PC
    MonitorApp -->|SSH| PI
    MonitorApp -->|HTTP/Ping| WebServices

1. Frontend (Client-Side)

  • Technology: HTML5, Vanilla CSS, JavaScript (ES6+).
  • Libraries: Chart.js for gauges, FontAwesome for icons.
  • Functionality: Fetches data from the backend every 60 seconds and updates the UI dynamically without page reloads.

2. Backend (Server-Side)

  • Technology: Python 3.11, FastAPI.
  • Monitoring Logic:
    • SSH: Uses paramiko to execute remote commands on the PC and Raspberry Pi.
    • Web: Uses requests to check the status and latency of web services.
  • Concurrency: Uses asyncio to perform all monitoring checks in parallel, ensuring fast response times.

3. Deployment

  • Containerization: Docker & Docker Compose.
  • Proxy: Caddy handles SSL termination and routes traffic to the container.