Files
Network-MGMT/CHANGELOG.md
T

9.0 KiB
Raw Permalink Blame History

Changelog

Alle wichtigen Änderungen an diesem Projekt werden in dieser Datei dokumentiert.

Format basiert auf Keep a Changelog. Dieses Projekt verwendet Semantic Versioning.

Unreleased


0.10.0 - 2026-07-02

Added

  • Docker-Setup: Dockerfile (PHP 8.5 FPM + nginx + Node.js 20 + nmap + supervisor), docker-compose.yml (App + MariaDB 11), automatischer Startup via entrypoint.sh (wartet auf DB, migriert, baut Assets, startet Supervisor)
  • docker/nginx.conf, docker/supervisord.conf: nginx als Reverse-Proxy zu PHP-FPM, Laravel Scheduler als Supervisor-Job
  • .dockerignore für minimale Image-Größe
  • .env.example auf Docker-Betrieb angepasst (DB_HOST=db, MariaDB-Variablen, APP_PORT)
  • Software-Update-Funktion: Admin → Einstellungen → 🔄 Software-Update
  • config/version.php: zentrale Versionsverwaltung, konfigurierbare Gitea-URL
  • Artisan-Command app:check-update: prüft Gitea-API auf neuere Release-Tags, speichert Ergebnis 6 Stunden im Cache
  • Artisan-Command app:install-update: führt git fetch, git checkout <tag>, composer install, npm run build, php artisan migrate, Cache-Rebuild durch — mit automatischem Wartungsmodus
  • UpdateController (Admin): Update-Seite mit Versionsvergleich, Release-Notes, Install-Button, manueller Tag-Eingabe
  • Navigation: „Update"-Badge im Einstellungen-Dropdown wenn neue Version verfügbar (liest aus Cache, kein Live-HTTP-Request)
  • Update-Check alle 6 Stunden via Laravel Scheduler (app:check-update)
  • Wartungsseite errors/maintenance.blade.php mit Auto-Reload

Setup (einmalig)

GITEA_URL=http://<IP-des-Gitea-Servers>:3000
GITEA_REPO=admin/Network-MGMT

In .env eintragen, danach steht der Update-Check zur Verfügung.

Docker-Deployment

git clone http://<gitea>:3000/admin/Network-MGMT.git
cd Network-MGMT
cp .env.example .env
# .env anpassen (Passwörter, APP_URL, GITEA_URL)
docker compose up -d --build

0.9.0 - 2026-07-02

Added

  • Geräte-Tracking ohne MAC-Adresse: nmap-Hosts aus Remote-Subnetzen (kein ARP möglich) werden jetzt als network_devices-Einträge erfasst (Tracking per Hostname, Fallback per IP)
  • mac_address in network_devices ist jetzt nullable (mehrere NULL-Werte durch MySQL erlaubt)
  • Dashboard: Separater Warnblock „⚠️ IP-Adressen-Wechsel erkannt" mit Anzeige alter IP → neuer IP, Gerätename, MAC, Quittier-Button inkl. Notizfeld
  • Alle anderen Ereignisse auf dem Dashboard ebenfalls mit inline Notiz quittierbar
  • Geräte-Detailseite: IP-Verlauf zeigt Hinweis wenn ein Gerät mehrere verschiedene IPs hatte, alle bekannten IPs als Tags, aktuelle IP hervorgehoben
  • Globale Suche: netbios_name wird jetzt mitdurchsucht
  • Globale Suche: Zeigt auch Treffer direkt aus network_hosts (Scan-Verlauf) wenn noch kein Geräteeintrag vorhanden
  • Artisan-Command network:backfill-devices: Erstellt network_devices-Einträge für alle bestehenden network_hosts ohne device_id

Setup (einmalig)

php artisan migrate
php artisan network:backfill-devices

0.8.0 - 2026-07-02

Added

  • IP-Bemerkungen: Pro IP-Adresse je Segment eine Bemerkung hinterlegen (inline editierbar in der Scan-Detailansicht)
  • Neue Tabelle network_ip_notes (Segment + IP als Unique-Key)
  • Subnetz-Erkennung: Schaltfläche „🔍 Erkennen" in Segment anlegen/bearbeiten ermittelt /24-Subnetze aus vorhandenen IP-Daten per API (/network/detect-subnets)
  • Export Segment als Excel (.xlsx) via PhpSpreadsheet enthält alle Hosts des letzten Scans inkl. Bemerkungen
  • Export Segment als PDF via DomPDF Querformat-Tabelle mit Hosts, Status, MAC, Hostname, Hersteller, Ping und Bemerkungen
  • Export-Buttons (📊 Excel / 📄 PDF) auf Segment-Detailseite und Scan-Detailseite

Setup (einmalig ausführen)

composer require phpoffice/phpspreadsheet barryvdh/laravel-dompdf
php artisan migrate

0.7.0 - 2026-07-02

Added

  • Automatischer Netzwerkscan via nmap pro Segment (Artisan Command network:scan)
  • Scan-Zyklus pro Segment einstellbar: 5 / 15 / 30 / 60 / 360 / 720 / 1440 Minuten
  • „Jetzt scannen"-Button direkt auf der Segment-Detailseite
  • nmap-Parameter pro Segment konfigurierbar (z.B. -sn, -sn -p 22,80,443)
  • Laravel Scheduler führt network:scan jede Minute aus und prüft fällige Segmente
  • Auto-Refresh auf Segment-Detailseite nach manuellem Scan (prüft alle 10s)
  • Chronologischer IP-Verlauf (/network/history) über alle Scans und Segmente
  • Filter im IP-Verlauf: IP, MAC, Hostname, Segment, Status, Datumsbereich
  • IP-Verlauf Auto-Refresh alle 60 Sekunden (ohne aktiven Filter)
  • Navigation: neuer Menüpunkt „IP-Verlauf"
  • last_scanned_at und scan_interval_minutes in Segment-Stammdaten

Setup (Cron für Scheduler)

* * * * * cd /home/arudolph/Projekte/PHP/Network-MGMT && php artisan schedule:run >> /dev/null 2>&1

0.6.0 - 2026-07-01

Added

  • Netzwerk-Segmentverwaltung: Subnetze mit Name, VLAN-ID und Aktiv/Inaktiv-Flag definieren
  • Neue Tabelle network_segments als organisatorische Einheit für Scan-Durchläufe
  • Dashboard-Ansicht „Netzwerk" mit Übersicht aller Segmente, KPI-Karten und offenen Ereignissen
  • Globale Suche über alle Segmente nach IP, MAC, Hostname und Bezeichnung
  • Navigation „Netzwerk" als Dropdown: Dashboard, Segmente, Alle Geräte, Suche, Import
  • Import-Seite: Segment-Auswahl beim Upload eines Angry IP Scanner Exports
  • Segment-Detailseite mit Scan-Historie
  • segment_id FK in network_scans Tabelle

0.5.0 - 2026-06-29

Added

  • Netzwerk-Modul: Menüpunkt „Netzwerk" auf Ebene 0 für alle eingeloggten Benutzer
  • Import von Angry IP Scanner .txt-Exporten (tab-getrennt) via Datei-Upload
  • Automatische Erkennung und Speicherung von Netzwerkgeräten anhand MAC-Adresse
  • Chronologische Scan-Sessions mit Metadaten (Subnetz, Quelle, Gesamt-/Online-Hosts)
  • Änderungserkennung: neue Geräte, IP-Wechsel, Online/Offline-Statuswechsel
  • Ereignis-Protokoll pro Gerät mit Bestätigungs-Workflow (✓ Bestätigen)
  • Geräte-Detailansicht: Stammdaten, Bezeichnung, Notizen, IP-Verlauf, Ereignislog
  • Geräte-Übersicht mit Suche und Statusfilter (Online/Offline)
  • Scan-Detailansicht mit vollständiger Host-Tabelle
  • Manuelle Notizen zu Geräten hinzufügbar
  • 4 neue Datenbanktabellen: network_scans, network_devices, network_hosts, network_device_events
  • NetworkScanImporter-Service für Parser-Logik (MAC-Normalisierung, Spalten-Aliase)
  • NetworkController mit 9 Routen

0.4.0 - 2026-06-29

Added

  • Einstellungen → Layout: Seitenname, Logo-Upload, Button-Farbe (Colorpicker), Dark/Light-Mode
  • Settings-Tabelle als Key-Value-Store in der Datenbank
  • SettingsService mit Cache-Layer (automatische Invalidierung bei Änderung)
  • SettingsServiceProvider: Einstellungen werden global in alle Views injiziert
  • Dark-Mode via dark-Klasse auf HTML-Element (Tailwind CSS)
  • CSS-Variable --color-primary für dynamische Button-Farbe
  • Hilfe-Menü auf Ebene 0 (Dropdown) für alle eingeloggten Benutzer
  • Hilfe → Handbuch: Übersicht über Rollen, Funktionen, Bedienung
  • Hilfe → Changelog: Changelog direkt im Browser lesbar
  • Navigation: Einstellungen-Dropdown um Layout erweitert

0.3.0 - 2026-06-27

Added

  • Admin-Modul: komplette Benutzerverwaltung unter /admin/users
  • Benutzer anlegen, bearbeiten, löschen über Web-Oberfläche
  • Rollenzuweisung direkt im Formular (admin / manager / user)
  • Navigationslink „Benutzerverwaltung" nur für Admins sichtbar (@role('admin'))
  • Gefahrenzone im Bearbeiten-Formular für sicheres Löschen
  • Schutz: eigener Account kann nicht gelöscht werden

Security

  • Admin-Routen mit Middleware role:admin geschützt

0.2.0 - 2026-06-27

Added

  • Laravel 13 Projektstruktur
  • Authentifizierung via Laravel Breeze (Blade)
  • RBAC via Spatie Permission v8 (admin/manager/user)
  • MariaDB-Anbindung konfiguriert
  • Rollen: admin, manager, user
  • Permissions: user.*, role.*, network.*
  • Standard-Admin-Account: admin@mms-systemservice.de
  • Docker-Umgebung: Gitea, MariaDB, phpMyAdmin

0.1.0 - 2026-06-27

Added

  • Initiale Projektstruktur angelegt
  • Git-Repository mit Gitea-Remote eingerichtet
  • Grundlegende PHP-Projektstruktur (public/, src/, config/)
  • composer.json, .gitignore, README.md