README: Umfassende Dokumentation des Scheduler-Systems und Logging-Features
This commit is contained in:
82
README.md
82
README.md
@@ -8,6 +8,8 @@ Ein moderner Wake-on-LAN Manager, entwickelt mit Go und einer schönen Web-Oberf
|
|||||||
- **Wake-on-LAN**: Ein-Klick-Aufwecken von Computern über MAC-Adressen
|
- **Wake-on-LAN**: Ein-Klick-Aufwecken von Computern über MAC-Adressen
|
||||||
- **IP-Adressverwaltung**: Pro Gerät wird eine IP-Adresse gespeichert
|
- **IP-Adressverwaltung**: Pro Gerät wird eine IP-Adresse gespeichert
|
||||||
- **Online-Status (Ping)**: Geräte können per Ping geprüft und im UI als Online/Offline angezeigt werden
|
- **Online-Status (Ping)**: Geräte können per Ping geprüft und im UI als Online/Offline angezeigt werden
|
||||||
|
- **Automatischer Autostart**: Scheduler für geplante Wake-on-LAN Ereignisse mit Crontab-Syntax
|
||||||
|
- **Logging-System**: Vollständige Protokollierung aller WOL-Ereignisse (Button-Klick und Scheduler)
|
||||||
- **Moderne Web-Oberfläche**: Responsive Design mit Bootstrap und FontAwesome
|
- **Moderne Web-Oberfläche**: Responsive Design mit Bootstrap und FontAwesome
|
||||||
- **SQLite-Datenbank**: Einfache lokale Datenspeicherung
|
- **SQLite-Datenbank**: Einfache lokale Datenspeicherung
|
||||||
- **Cross-Platform**: Läuft auf Windows und Linux
|
- **Cross-Platform**: Läuft auf Windows und Linux
|
||||||
@@ -114,6 +116,22 @@ Falls weder Kommandozeilenparameter noch Umgebungsvariable gesetzt sind, wird Po
|
|||||||
- Klicken Sie auf den "Löschen"-Button neben dem gewünschten PC
|
- Klicken Sie auf den "Löschen"-Button neben dem gewünschten PC
|
||||||
- Bestätigen Sie die Löschung
|
- Bestätigen Sie die Löschung
|
||||||
|
|
||||||
|
### Autostart konfigurieren
|
||||||
|
1. **Autostart aktivieren**: Aktivieren Sie die Checkbox "Autostart aktiv"
|
||||||
|
2. **Crontab-Syntax eingeben**: Verwenden Sie das Format `Minute Stunde Tag Monat Wochentag`
|
||||||
|
- **Standard**: `30 7 * * Mon-Fri` (Mo-Fr um 7:30 Uhr)
|
||||||
|
- **Beispiele**:
|
||||||
|
- `0 8 * * *` = Täglich um 8:00 Uhr
|
||||||
|
- `0 9 * * Mon,Wed,Fri` = Mo, Mi, Fr um 9:00 Uhr
|
||||||
|
- `30 7 * * 1-5` = Mo-Fr um 7:30 Uhr
|
||||||
|
3. **Hilfe**: Link zu [crontab.guru](https://crontab.guru/) für Crontab-Syntax
|
||||||
|
4. **Speichern**: Änderungen werden automatisch vom Scheduler übernommen
|
||||||
|
|
||||||
|
### Logs einsehen
|
||||||
|
- **Tooltips**: Die letzten 5 Log-Einträge werden als Tooltip über jeder PC-Zeile angezeigt
|
||||||
|
- **Logs-Seite**: Vollständige Log-Übersicht unter `/logs`
|
||||||
|
- **Log-Details**: Jeder Eintrag enthält Timestamp, PC-Name, MAC-Adresse und Auslöser (Button/Scheduler)
|
||||||
|
|
||||||
## Windows Installer
|
## Windows Installer
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
@@ -282,6 +300,7 @@ medi-wol/
|
|||||||
│ ├── database/ # Datenbanklogik
|
│ ├── database/ # Datenbanklogik
|
||||||
│ ├── handlers/ # HTTP-Handler
|
│ ├── handlers/ # HTTP-Handler
|
||||||
│ ├── models/ # Datenmodelle
|
│ ├── models/ # Datenmodelle
|
||||||
|
│ ├── scheduler/ # Autostart-Scheduler für WOL-Ereignisse
|
||||||
│ └── wol/ # Wake-on-LAN Service
|
│ └── wol/ # Wake-on-LAN Service
|
||||||
├── web/ # Web-Oberfläche
|
├── web/ # Web-Oberfläche
|
||||||
│ ├── static/ # CSS, JavaScript
|
│ ├── static/ # CSS, JavaScript
|
||||||
@@ -292,6 +311,8 @@ medi-wol/
|
|||||||
├── go.mod # Go-Module
|
├── go.mod # Go-Module
|
||||||
├── build.bat # Windows Build-Skript (inkl. Installer)
|
├── build.bat # Windows Build-Skript (inkl. Installer)
|
||||||
├── build.sh # Linux Build-Skript
|
├── build.sh # Linux Build-Skript
|
||||||
|
├── AUTOSTART_README.md # Dokumentation des Autostart-Systems
|
||||||
|
├── LOGGING_README.md # Dokumentation des Logging-Systems
|
||||||
└── README.md # Diese Datei
|
└── README.md # Diese Datei
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -302,6 +323,7 @@ Das `installer/` Verzeichnis enthält alle Dateien für den Windows Installer:
|
|||||||
|
|
||||||
## API-Endpunkte
|
## API-Endpunkte
|
||||||
|
|
||||||
|
### PC-Management
|
||||||
- `GET /` - Hauptseite
|
- `GET /` - Hauptseite
|
||||||
- `GET /api/pcs` - Alle PCs abrufen
|
- `GET /api/pcs` - Alle PCs abrufen
|
||||||
- `POST /api/pcs` - Neuen PC erstellen
|
- `POST /api/pcs` - Neuen PC erstellen
|
||||||
@@ -310,19 +332,37 @@ Das `installer/` Verzeichnis enthält alle Dateien für den Windows Installer:
|
|||||||
- `POST /api/pcs/:id/wake` - PC aufwecken
|
- `POST /api/pcs/:id/wake` - PC aufwecken
|
||||||
- `GET /api/pcs/status` - Online-Status aller PCs abrufen (Ping)
|
- `GET /api/pcs/status` - Online-Status aller PCs abrufen (Ping)
|
||||||
|
|
||||||
|
### Logging
|
||||||
|
- `GET /logs` - Logs-Seite anzeigen
|
||||||
|
- `GET /api/logs` - Alle Log-Einträge abrufen
|
||||||
|
- `GET /api/logs/pc/:id` - Logs für einen spezifischen PC abrufen
|
||||||
|
- `GET /api/logs/pc/:id/recent` - Die letzten 5 Logs für einen PC abrufen
|
||||||
|
|
||||||
## Datenbank
|
## Datenbank
|
||||||
|
|
||||||
Die Anwendung verwendet SQLite als lokale Datenbank. Die Datenbankdatei `medi-wol.db` wird automatisch im Projektverzeichnis erstellt.
|
Die Anwendung verwendet SQLite als lokale Datenbank. Die Datenbankdatei `medi-wol.db` wird automatisch im Projektverzeichnis erstellt.
|
||||||
|
|
||||||
### Tabellenstruktur `pcs`
|
### Tabellenstruktur `pcs`
|
||||||
| Spalte | Typ | Hinweis |
|
| Spalte | Typ | Hinweis |
|
||||||
|-------------|----------|------------------------|
|
|------------------|----------|--------------------------------------------|
|
||||||
| id | INTEGER | Primärschlüssel |
|
| id | INTEGER | Primärschlüssel |
|
||||||
| name | TEXT | Pflichtfeld |
|
| name | TEXT | Pflichtfeld |
|
||||||
| mac | TEXT | Pflichtfeld, eindeutig |
|
| mac | TEXT | Pflichtfeld, eindeutig |
|
||||||
| ip | TEXT | Pflichtfeld |
|
| ip | TEXT | Pflichtfeld |
|
||||||
| created_at | DATETIME | Automatisch |
|
| autostart_cron | TEXT | Crontab-Syntax für Autostart (Standard: `30 7 * * Mon-Fri`) |
|
||||||
| updated_at | DATETIME | Automatisch |
|
| autostart_enabled| BOOLEAN | Autostart aktiviert (Standard: false) |
|
||||||
|
| created_at | DATETIME | Automatisch |
|
||||||
|
| updated_at | DATETIME | Automatisch |
|
||||||
|
|
||||||
|
### Tabellenstruktur `wol_logs`
|
||||||
|
| Spalte | Typ | Hinweis |
|
||||||
|
|-------------|----------|--------------------------------------------|
|
||||||
|
| id | INTEGER | Primärschlüssel |
|
||||||
|
| timestamp | DATETIME | Zeitstempel des WOL-Ereignisses |
|
||||||
|
| pc_id | INTEGER | Referenz auf PC (Foreign Key) |
|
||||||
|
| pc_name | TEXT | Name des PCs zum Zeitpunkt des Ereignisses |
|
||||||
|
| mac | TEXT | MAC-Adresse des PCs |
|
||||||
|
| trigger | TEXT | Auslöser: "button" oder "cron" |
|
||||||
|
|
||||||
## Wake-on-LAN
|
## Wake-on-LAN
|
||||||
|
|
||||||
@@ -375,6 +415,32 @@ golint ./...
|
|||||||
go vet ./...
|
go vet ./...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Scheduler-System
|
||||||
|
|
||||||
|
### Übersicht
|
||||||
|
Der integrierte Scheduler ermöglicht es, Wake-on-LAN Ereignisse automatisch zu geplanten Zeiten auszuführen. Dies ist ideal für:
|
||||||
|
- **Bürozeiten**: PCs starten automatisch vor Arbeitsbeginn
|
||||||
|
- **Wartungsfenster**: Regelmäßige Systemstarts für Updates
|
||||||
|
- **Energiesparen**: PCs werden nur bei Bedarf gestartet
|
||||||
|
|
||||||
|
### Funktionsweise
|
||||||
|
1. **Crontab-Parser**: Unterstützt Standard Crontab-Syntax
|
||||||
|
2. **Minuten-Intervall**: Prüft jede Minute auf fällige Aufgaben
|
||||||
|
3. **Automatische Ausführung**: Sendet WOL-Pakete ohne Benutzerinteraktion
|
||||||
|
4. **Logging**: Alle Scheduler-Ereignisse werden protokolliert
|
||||||
|
|
||||||
|
### Unterstützte Crontab-Formate
|
||||||
|
- **Einfache Werte**: `30 7 * * Mon-Fri` (Mo-Fr um 7:30 Uhr)
|
||||||
|
- **Bereiche**: `0 8-18 * * *` (8:00-18:00 Uhr stündlich)
|
||||||
|
- **Wochentage**: `0 9 * * Mon,Wed,Fri` (Mo, Mi, Fr um 9:00 Uhr)
|
||||||
|
- **Wochentag-Bereiche**: `0 8 * * Mon-Fri` (Mo-Fr um 8:00 Uhr)
|
||||||
|
|
||||||
|
### Konfiguration
|
||||||
|
- **Standard**: `30 7 * * Mon-Fri` (Mo-Fr um 7:30 Uhr)
|
||||||
|
- **Anpassung**: Über die Web-Oberfläche bei jedem PC individuell
|
||||||
|
- **Aktivierung**: Checkbox "Autostart aktiv" pro PC
|
||||||
|
- **Sofortige Übernahme**: Änderungen werden sofort vom Scheduler berücksichtigt
|
||||||
|
|
||||||
## Deployment
|
## Deployment
|
||||||
|
|
||||||
### Windows Service
|
### Windows Service
|
||||||
|
|||||||
Reference in New Issue
Block a user