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
|
||||
- **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
|
||||
- **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
|
||||
- **SQLite-Datenbank**: Einfache lokale Datenspeicherung
|
||||
- **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
|
||||
- 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
|
||||
|
||||
### Features
|
||||
@ -282,6 +300,7 @@ medi-wol/
|
||||
│ ├── database/ # Datenbanklogik
|
||||
│ ├── handlers/ # HTTP-Handler
|
||||
│ ├── models/ # Datenmodelle
|
||||
│ ├── scheduler/ # Autostart-Scheduler für WOL-Ereignisse
|
||||
│ └── wol/ # Wake-on-LAN Service
|
||||
├── web/ # Web-Oberfläche
|
||||
│ ├── static/ # CSS, JavaScript
|
||||
@ -292,6 +311,8 @@ medi-wol/
|
||||
├── go.mod # Go-Module
|
||||
├── build.bat # Windows Build-Skript (inkl. Installer)
|
||||
├── build.sh # Linux Build-Skript
|
||||
├── AUTOSTART_README.md # Dokumentation des Autostart-Systems
|
||||
├── LOGGING_README.md # Dokumentation des Logging-Systems
|
||||
└── README.md # Diese Datei
|
||||
```
|
||||
|
||||
@ -302,6 +323,7 @@ Das `installer/` Verzeichnis enthält alle Dateien für den Windows Installer:
|
||||
|
||||
## API-Endpunkte
|
||||
|
||||
### PC-Management
|
||||
- `GET /` - Hauptseite
|
||||
- `GET /api/pcs` - Alle PCs abrufen
|
||||
- `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
|
||||
- `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
|
||||
|
||||
Die Anwendung verwendet SQLite als lokale Datenbank. Die Datenbankdatei `medi-wol.db` wird automatisch im Projektverzeichnis erstellt.
|
||||
|
||||
### Tabellenstruktur `pcs`
|
||||
| Spalte | Typ | Hinweis |
|
||||
|-------------|----------|------------------------|
|
||||
| id | INTEGER | Primärschlüssel |
|
||||
| name | TEXT | Pflichtfeld |
|
||||
| mac | TEXT | Pflichtfeld, eindeutig |
|
||||
| ip | TEXT | Pflichtfeld |
|
||||
| created_at | DATETIME | Automatisch |
|
||||
| updated_at | DATETIME | Automatisch |
|
||||
| Spalte | Typ | Hinweis |
|
||||
|------------------|----------|--------------------------------------------|
|
||||
| id | INTEGER | Primärschlüssel |
|
||||
| name | TEXT | Pflichtfeld |
|
||||
| mac | TEXT | Pflichtfeld, eindeutig |
|
||||
| ip | TEXT | Pflichtfeld |
|
||||
| autostart_cron | TEXT | Crontab-Syntax für Autostart (Standard: `30 7 * * Mon-Fri`) |
|
||||
| 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
|
||||
|
||||
@ -375,6 +415,32 @@ golint ./...
|
||||
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
|
||||
|
||||
### Windows Service
|
||||
|
||||
Reference in New Issue
Block a user