From 6429489f80d7d2979c8c8b57172f7ad3015ae95e Mon Sep 17 00:00:00 2001 From: triggermeelmo Date: Sun, 16 Nov 2025 23:37:12 +0100 Subject: [PATCH] Readme aktualisiert --- README.md | 214 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 191 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 7fc7e09..6051e31 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,202 @@ -# 🖥️ Server Monitoring Software +# Watcher - Server Monitoring Solution -Dieses Projekt ist eine umfassende Monitoring-Lösung für Server und Host-Geräte. -Die Software besteht aus zwei Teilen: -- **Host Agent**: Sammelt Hardware-Daten von den Hosts -- **Zentrale Monitoring-Software**: Visualisiert und verwaltet die gesammelten Daten +[![Build Status](https://git.triggermeelmo.com/Watcher/watcher/badges/workflows/build.yml/badge.svg)](https://git.triggermeelmo.com/Watcher/watcher/actions) +[![.NET Version](https://img.shields.io/badge/.NET-8.0-512BD4?logo=dotnet)](https://dotnet.microsoft.com/) +[![Docker Image](https://img.shields.io/badge/docker-multi--arch-2496ED?logo=docker)](https://git.triggermeelmo.com/watcher/-/packages/container/watcher-server) +[![Platform](https://img.shields.io/badge/platform-linux%2Famd64%20%7C%20linux%2Farm64-lightgrey)](https://git.triggermeelmo.com/watcher/watcher-server) -Die Lösung unterstützt moderne Authentifizierungsverfahren und flexible Datenbankanbindungen – alles bequem verteilt als Docker Image. +**Watcher** ist eine umfassende Server- und Host-Monitoring-Lösung mit verteilter Architektur, die Echtzeit-Hardware-Metriken erfasst und über ein zentrales Web-Dashboard visualisiert. ---- +## 📋 Überblick -## ✨ Features +Die Software besteht aus zwei Hauptkomponenten: -- Erfassung von Hardware-Daten aller wichtigen Komponenten -- Lokale Authentifizierung oder OIDC (OpenID Connect) -- Wahlweise Speicherung der Daten in: - - Lokaler SQLite-Datenbank - - Remote MySQL-Datenbank -- Einfache Bereitstellung via Docker & docker-compose +- **Host Agent**: Sammelt Hardware-Metriken (CPU, GPU, RAM, Festplatte, Netzwerk) von den überwachten Servern +- **Zentrale Monitoring-Software**: Web-basiertes Dashboard zur Visualisierung und Verwaltung der gesammelten Daten mit konfigurierbaren Alarmschwellen ---- +## ✨ Hauptfunktionen -## ⚙️ Installation & Start +### Server-Management +- Hinzufügen, bearbeiten und löschen von Servern +- Hardware-Spezifikationen erfassen (CPU, GPU, RAM, Festplatte) +- Server-Verifikationssystem +- Online/Offline-Status-Tracking via Heartbeat +- Konfigurierbare Alarmschwellen pro Server -Voraussetzung: +### Monitoring & Metriken +- Echtzeit-Metrikerfassung: CPU, GPU, RAM, Festplatte, Netzwerk +- Automatische Datenaufbewahrung mit konfigurierbarer Retention (Standard: 30 Tage) +- Historische Datenspeicherung mit Zeitstempel +- REST API-Endpunkte für Metrik-Submission +- Swagger/OpenAPI-Dokumentation unter `/api/v1/swagger` + +### Container-Management +- Docker-Container-Tracking pro Server +- Container-Image-Registry +- Container-Status-Überwachung +- Service Discovery für Docker-Container + +### Sicherheit & Authentifizierung +- Lokale Benutzerauthentifizierung mit BCrypt-Hashing +- Cookie-basierte Session-Verwaltung +- Rollenbasierte Zugriffskontrolle +- Standard-Admin-Benutzer (Username: `admin`, Passwort: `changeme` - bitte ändern!) + +### Logging & Diagnostik +- Strukturiertes Logging mit Serilog +- Tägliche Log-Dateien: `logs/watcher-.log` +- Health-Check-Endpunkte +- Datenbank-Export-Funktionalität (SQL-Dumps) + +## 🛠️ Technologie-Stack + +**Backend:** +- ASP.NET Core 8.0 (C#) +- Entity Framework Core 8.0 +- Serilog 9.0 für Logging + +**Datenbank:** +- SQLite (Standard, dateibasiert) +- MySQL-Unterstützung (konfigurierbar) + +**Frontend:** +- Razor Views (CSHTML) +- Bootstrap / CSS +- jQuery, jQuery Validation + +**API & Dokumentation:** +- Swagger/Swashbuckle 9.0.6 +- REST API + +**Container & Deployment:** +- Docker (Multi-Arch: AMD64, ARM64) +- Docker Compose +- Gitea CI/CD + +## 🚀 Installation & Start + +### Voraussetzungen - [Docker](https://www.docker.com/) -- [docker-compose](https://docs.docker.com/compose/) +- [Docker Compose](https://docs.docker.com/compose/) -1. Image herunterladen: +### Schnellstart + +1. **docker-compose.yaml erstellen** oder die bereitgestellte verwenden: + +```yaml +services: + watcher: + image: git.triggermeelmo.com/watcher/watcher-server:latest + container_name: watcher + deploy: + resources: + limits: + memory: 200M + restart: unless-stopped + environment: + - WATCHER_VERSION=latest + - UPDATE_CHECK_ENABLED=true + - UPDATE_CHECK_INTERVAL_HOURS=24 + - METRIC_RETENTION_DAYS=30 + - METRIC_CLEANUP_ENABLED=true + - METRIC_CLEANUP_INTERVAL_HOURS=24 + ports: + - "5000:5000" + volumes: + - ./watcher-volumes/data:/app/persistence + - ./watcher-volumes/dumps:/app/wwwroot/downloads/sqlite + - ./watcher-volumes/logs:/app/logs +``` + +2. **Container starten:** ```bash - docker pull git.triggermeelmo.com/daniel-hbn/watcher/watcher:latest -2. Docker Container starten - ```bash - docker compose up -d \ No newline at end of file + docker compose up -d + ``` + +3. **Dashboard aufrufen:** + ``` + http://localhost:5000 + ``` + +4. **Standardanmeldung:** + - Benutzername: `admin` + - Passwort: `changeme` + - ⚠️ **Wichtig:** Bitte Passwort nach dem ersten Login ändern! + +## ⚙️ Konfiguration + +### Umgebungsvariablen + +| Variable | Beschreibung | Standard | +|----------|--------------|----------| +| `WATCHER_VERSION` | Anwendungsversion | `latest` | +| `UPDATE_CHECK_ENABLED` | Update-Prüfung aktivieren | `true` | +| `UPDATE_CHECK_INTERVAL_HOURS` | Update-Prüfungs-Intervall | `24` | +| `METRIC_RETENTION_DAYS` | Datenspeicherdauer (Tage) | `30` | +| `METRIC_CLEANUP_ENABLED` | Automatische Datenbereinigung | `true` | +| `METRIC_CLEANUP_INTERVAL_HOURS` | Bereinigungs-Intervall | `24` | +| `DATABASE:CONNECTIONSTRINGS:SQLITE` | Benutzerdefinierter SQLite-Pfad | - | + +### Volumes + +- `/app/persistence` - SQLite-Datenbank +- `/app/wwwroot/downloads/sqlite` - Datenbank-Exports +- `/app/logs` - Anwendungslogs + +## 🔧 Entwicklung + +### Lokales Build + +```bash +# Dependencies wiederherstellen +dotnet restore + +# Build +dotnet build --configuration Release + +# Tests ausführen +dotnet test + +# Anwendung starten +dotnet run --project Watcher +``` + +### Docker-Build + +```bash +# Multi-Arch Build +docker buildx build \ + --platform linux/amd64,linux/arm64 \ + -t watcher-server:latest \ + --push . +``` + +## 📁 Projektstruktur + +``` +/Watcher +├── Controllers/ # MVC & API Controllers +├── Models/ # Entity-Modelle +├── Views/ # Razor-Templates +├── Services/ # Background-Services & Stores +├── Data/ # Entity Framework Context +├── Migrations/ # EF Core Migrations +├── ViewModels/ # View Models +├── wwwroot/ # Statische Assets +├── persistence/ # SQLite-Datenbank +└── logs/ # Anwendungslogs +``` + +## 📝 Lizenz + +Dieses Projekt ist unter einer proprietären Lizenz lizenziert. + +## 🔗 Links + +- **Repository:** [https://git.triggermeelmo.com/Watcher/watcher](https://git.triggermeelmo.com/Watcher/watcher) +- **Container Registry:** [https://git.triggermeelmo.com/watcher/-/packages/container/watcher-server](https://git.triggermeelmo.com/watcher/-/packages/container/watcher-server) +- **Issue Tracker:** [https://git.triggermeelmo.com/Watcher/watcher/issues](https://git.triggermeelmo.com/Watcher/watcher/issues) + +--- + +**Entwickelt mit ❤️ unter Verwendung von .NET 8.0** \ No newline at end of file