triggermeelmo 23cac83061
All checks were successful
Gitea CI/CD / dotnet-build-and-test (push) Successful in 45s
Gitea CI/CD / Set Tag Name (push) Successful in 5s
Gitea CI/CD / docker-build-and-push (push) Successful in 5m55s
Gitea CI/CD / Create Tag (push) Successful in 5s
Server-Übersicht Metric
2025-11-17 00:47:51 +01:00
2025-11-05 21:15:10 +01:00
2025-11-06 20:09:51 +01:00
2025-11-17 00:47:51 +01:00
2025-08-11 21:23:04 +02:00
2025-11-16 23:37:12 +01:00
2025-06-13 23:48:23 +02:00

Watcher - Server Monitoring Solution

Build Status .NET Version Docker Image Platform

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 mit konfigurierbaren Alarmschwellen

Hauptfunktionen

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

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-<datum>.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

Schnellstart

  1. docker-compose.yaml erstellen oder die bereitgestellte verwenden:
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
  1. Container starten:

    docker compose up -d
    
  2. Dashboard aufrufen:

    http://localhost:5000
    
  3. 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

# Dependencies wiederherstellen
dotnet restore

# Build
dotnet build --configuration Release

# Tests ausführen
dotnet test

# Anwendung starten
dotnet run --project Watcher

Docker-Build

# 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.


Entwickelt mit ❤️ unter Verwendung von .NET 8.0

Description
No description provided
Readme 5.6 MiB
2025-11-06 21:23:26 +01:00
Languages
C# 67.9%
HTML 29.2%
CSS 2.4%
Dockerfile 0.5%