# Watcher - Server Monitoring Solution [![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) **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 Die Software besteht aus zwei Hauptkomponenten: - **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 ### Hauptfunktionen - Echtzeit-Hardware-Monitoring (CPU, GPU, RAM, Festplatte, Netzwerk) - Docker-Container-Überwachung mit Service Discovery - Web-basiertes Dashboard mit historischen Daten - Konfigurierbare Alarmschwellen - REST API mit Swagger-Dokumentation - Automatische Datenaufbewahrung (konfigurierbar) - Rootless Container-Betrieb für erhöhte Sicherheit ## 🚀 Installation & Start ### Voraussetzungen - [Docker](https://www.docker.com/) - [Docker Compose](https://docs.docker.com/compose/) ### Schnellstart 1. **Repository klonen oder docker-compose.yaml herunterladen** ```bash git clone https://git.triggermeelmo.com/Watcher/watcher.git cd watcher ``` 2. **Umgebungsvariablen konfigurieren (optional)** ```bash # .env Datei erstellen cp .env.example .env # Eigene UID/GID eintragen (für korrekte Dateiberechtigungen) echo "USER_UID=$(id -u)" >> .env echo "USER_GID=$(id -g)" >> .env ``` 3. **Verzeichnisse mit korrekten Rechten erstellen** ```bash mkdir -p data/db data/dumps data/logs chown -R $(id -u):$(id -g) data/ ``` 4. **Container starten** ```bash docker compose up -d ``` 5. **Dashboard aufrufen** ``` http://localhost:5000 ``` 6. **Standardanmeldung** - Benutzername: `admin` - Passwort: `changeme` - ⚠️ **Wichtig:** Passwort nach dem ersten Login ändern! ### Konfiguration #### Wichtige Umgebungsvariablen | Variable | Beschreibung | Standard | |----------|--------------|----------| | `USER_UID` | User-ID für Container (Dateiberechtigungen) | `1000` | | `USER_GID` | Gruppen-ID für Container | `1000` | | `IMAGE_VERSION` | Docker Image Version | `latest` | | `METRIC_RETENTION_DAYS` | Datenspeicherdauer (Tage) | `30` | | `METRIC_CLEANUP_ENABLED` | Automatische Datenbereinigung | `true` | | `FRONTEND_REFRESH_INTERVAL_SECONDS` | Dashboard Aktualisierungsrate | `30` | Vollständige Liste: siehe `docker-compose.yaml` #### Volumes - `./data/db` → `/app/persistence` - SQLite-Datenbank - `./data/dumps` → `/app/wwwroot/downloads/sqlite` - Datenbank-Exports - `./data/logs` → `/app/logs` - Anwendungslogs #### Sicherheit Der Container läuft als **non-root user** mit konfigurierbarer UID/GID: - Standard: `1000:1000` - Anpassbar über `USER_UID` und `USER_GID` in `.env` - Empfehlung: Eigene UID/GID verwenden für korrekte Dateiberechtigungen ## 📝 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**