Back to projectsRepository

Java 21 · Spring Boot · Linux · Team project · prototype

Self-Healing Cloud Infra

Monitor, detect, decide, recover: a control loop for a Linux host.

Diagram of the monitor, detect, decide, recover loop
Language
Java 21, Spring Boot 3.2
Build
Maven
Runs on
Linux / Ubuntu, port 8080
Organisation
DevForgeCore, final-year project

Problem

When a host runs out of CPU, memory or disk, someone has to notice and act. This educational prototype watches a Linux host, classifies resource trouble and runs a predefined recovery action without waiting for a human, while keeping a tamper-evident record of what it did.

Features

  • Monitoring: live CPU, RAM and disk metrics with a resource-history chart.
  • Detection: rule-based detection of supported overload conditions.
  • Decisions: a decision engine maps each classified issue to a configured action.
  • Recovery: demonstrated recovery for CPU, memory and disk scenarios.
  • Event logs: incident and recovery records with blockchain-inspired, hash-chained integrity logging.
  • Dashboard: system status, decisions, processes, logs and trust information in one interface.

Design decisions

  • Threshold rules rather than a trained model: the README is explicit that detection is rule-based until a real ML model is added.
  • Recovery is limited to predefined actions on demo processes and project-owned test files, never free-form automation.
  • Every event is appended to a hash chain so the recovery history cannot be quietly edited afterwards.
  • Recovery controls are meant for a disposable test VM and must not be exposed publicly without authentication and allow-lists.

Architecture

Monitoring
Collects Linux CPU, memory and disk metrics
Failure detection
Threshold rules decide normal versus issue
Classification
CPU overload, memory overload or disk pressure
Decision engine
Maps the issue class to a recovery action
Recovery service
Runs the action on the host
Event and integrity logging
Hash-chained record feeding the dashboard

Tech stack

Backend
Java 21, Spring Boot 3.2.5, Maven
Frontend
HTML, CSS, JavaScript, Chart.js
Integration
REST API, Linux / Ubuntu

API

  • GET/api/system-healthCurrent resource metrics and status
  • GET/api/logsApplication and recovery logs
  • GET/api/processesProcess information

Result

A working monitor-detect-decide-recover loop with a verifiable log, built with a team under the DevForgeCore organisation. Planned next: SHA-256 hash-chain verification, safer recovery checks with rollback, authentication and container monitoring.