Erweitere README um Build-Anweisungen und füge Build-Skripte hinzu
This commit is contained in:
162
README.md
162
README.md
@ -4,7 +4,7 @@ Ein moderner Wake-on-LAN Manager, entwickelt mit Go und einer schönen Web-Oberf
|
||||
|
||||
## Features
|
||||
|
||||
- **PC-Verwaltung**: Hinzufügen, Anzeigen und Löschen von PC-Einträgen
|
||||
- **PC-Verwaltung**: Hinzufügen, Anzeigen, Bearbeiten und Löschen von PC-Einträgen
|
||||
- **Wake-on-LAN**: Ein-Klick-Aufwecken von Computern über MAC-Adressen
|
||||
- **Moderne Web-Oberfläche**: Responsive Design mit Bootstrap und FontAwesome
|
||||
- **SQLite-Datenbank**: Einfache lokale Datenspeicherung
|
||||
@ -19,7 +19,7 @@ Ein moderner Wake-on-LAN Manager, entwickelt mit Go und einer schönen Web-Oberf
|
||||
|
||||
1. **Repository klonen:**
|
||||
```bash
|
||||
git clone <repository-url>
|
||||
git clone https://gitea.medisoftware.org/Markus/medi-wol.git
|
||||
cd medi-wol
|
||||
```
|
||||
|
||||
@ -45,6 +45,11 @@ Ein moderner Wake-on-LAN Manager, entwickelt mit Go und einer schönen Web-Oberf
|
||||
2. Geben Sie die MAC-Adresse im Format `XX:XX:XX:XX:XX:XX` ein
|
||||
3. Klicken Sie auf "PC hinzufügen"
|
||||
|
||||
### PC bearbeiten
|
||||
1. Klicken Sie auf den "Bearbeiten"-Button neben dem gewünschten PC
|
||||
2. Ändern Sie Name und/oder MAC-Adresse
|
||||
3. Klicken Sie auf "Speichern"
|
||||
|
||||
### PC aufwecken
|
||||
- Klicken Sie auf den "Aufwecken"-Button neben dem gewünschten PC
|
||||
- Das System sendet automatisch ein Wake-on-LAN Paket
|
||||
@ -53,6 +58,109 @@ Ein moderner Wake-on-LAN Manager, entwickelt mit Go und einer schönen Web-Oberf
|
||||
- Klicken Sie auf den "Löschen"-Button neben dem gewünschten PC
|
||||
- Bestätigen Sie die Löschung
|
||||
|
||||
## Build-Anweisungen
|
||||
|
||||
### Windows Build
|
||||
|
||||
#### Lokaler Build (Windows)
|
||||
```bash
|
||||
# Einfacher Build
|
||||
go build -o medi-wol.exe cmd/server/main.go
|
||||
|
||||
# Build mit Optimierungen
|
||||
go build -ldflags="-s -w" -o medi-wol.exe cmd/server/main.go
|
||||
|
||||
# Build für Release
|
||||
go build -ldflags="-s -w -X main.version=1.0.0" -o medi-wol.exe cmd/server/main.go
|
||||
```
|
||||
|
||||
#### Cross-Compilation von Windows für Linux
|
||||
```bash
|
||||
# Für Linux AMD64
|
||||
set GOOS=linux
|
||||
set GOARCH=amd64
|
||||
go build -o medi-wol-linux-amd64 cmd/server/main.go
|
||||
|
||||
# Für Linux ARM64 (Raspberry Pi, etc.)
|
||||
set GOOS=linux
|
||||
set GOARCH=arm64
|
||||
go build -o medi-wol-linux-arm64 cmd/server/main.go
|
||||
|
||||
# Zurücksetzen auf Windows
|
||||
set GOOS=windows
|
||||
set GOARCH=amd64
|
||||
```
|
||||
|
||||
### Linux Build
|
||||
|
||||
#### Lokaler Build (Linux)
|
||||
```bash
|
||||
# Einfacher Build
|
||||
go build -o medi-wol cmd/server/main.go
|
||||
|
||||
# Build mit Optimierungen
|
||||
go build -ldflags="-s -w" -o medi-wol cmd/server/main.go
|
||||
|
||||
# Build für Release
|
||||
go build -ldflags="-s -w -X main.version=1.0.0" -o medi-wol cmd/server/main.go
|
||||
```
|
||||
|
||||
#### Cross-Compilation von Linux für Windows
|
||||
```bash
|
||||
# Für Windows AMD64
|
||||
GOOS=windows GOARCH=amd64 go build -o medi-wol-windows-amd64.exe cmd/server/main.go
|
||||
|
||||
# Für Windows ARM64
|
||||
GOOS=windows GOARCH=arm64 go build -o medi-wol-windows-arm64.exe cmd/server/main.go
|
||||
```
|
||||
|
||||
### Build-Flags Erklärung
|
||||
|
||||
- `-ldflags="-s -w"`: Reduziert die Binary-Größe durch Entfernung von Debug-Informationen
|
||||
- `-X main.version=1.0.0`: Setzt eine Version-Variable zur Laufzeit
|
||||
- `-o filename`: Bestimmt den Ausgabedateinamen
|
||||
|
||||
### Build-Skripte
|
||||
|
||||
#### Windows Build-Skript (`build.bat`)
|
||||
```batch
|
||||
@echo off
|
||||
echo Building Medi-WOL for multiple platforms...
|
||||
|
||||
echo Building for Windows AMD64...
|
||||
go build -ldflags="-s -w" -o dist/medi-wol-windows-amd64.exe cmd/server/main.go
|
||||
|
||||
echo Building for Linux AMD64...
|
||||
set GOOS=linux
|
||||
set GOARCH=amd64
|
||||
go build -ldflags="-s -w" -o dist/medi-wol-linux-amd64 cmd/server/main.go
|
||||
|
||||
echo Building for Linux ARM64...
|
||||
set GOOS=linux
|
||||
set GOARCH=arm64
|
||||
go build -ldflags="-s -w" -o dist/medi-wol-linux-arm64 cmd/server/main.go
|
||||
|
||||
echo Build complete!
|
||||
pause
|
||||
```
|
||||
|
||||
#### Linux Build-Skript (`build.sh`)
|
||||
```bash
|
||||
#!/bin/bash
|
||||
echo "Building Medi-WOL for multiple platforms..."
|
||||
|
||||
echo "Building for Linux AMD64..."
|
||||
go build -ldflags="-s -w" -o dist/medi-wol-linux-amd64 cmd/server/main.go
|
||||
|
||||
echo "Building for Linux ARM64..."
|
||||
GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o dist/medi-wol-linux-arm64 cmd/server/main.go
|
||||
|
||||
echo "Building for Windows AMD64..."
|
||||
GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o dist/medi-wol-windows-amd64.exe cmd/server/main.go
|
||||
|
||||
echo "Build complete!"
|
||||
```
|
||||
|
||||
## Projektstruktur
|
||||
|
||||
```
|
||||
@ -67,6 +175,8 @@ medi-wol/
|
||||
│ ├── static/ # CSS, JavaScript
|
||||
│ └── templates/ # HTML-Templates
|
||||
├── go.mod # Go-Module
|
||||
├── build.bat # Windows Build-Skript
|
||||
├── build.sh # Linux Build-Skript
|
||||
└── README.md # Diese Datei
|
||||
```
|
||||
|
||||
@ -75,6 +185,7 @@ medi-wol/
|
||||
- `GET /` - Hauptseite
|
||||
- `GET /api/pcs` - Alle PCs abrufen
|
||||
- `POST /api/pcs` - Neuen PC erstellen
|
||||
- `PUT /api/pcs/:id` - PC aktualisieren
|
||||
- `DELETE /api/pcs/:id` - PC löschen
|
||||
- `POST /api/pcs/:id/wake` - PC aufwecken
|
||||
|
||||
@ -99,7 +210,11 @@ go run cmd/server/main.go
|
||||
|
||||
### Build für Produktion
|
||||
```bash
|
||||
go build -o medi-wol cmd/server/main.go
|
||||
# Windows
|
||||
go build -ldflags="-s -w" -o medi-wol.exe cmd/server/main.go
|
||||
|
||||
# Linux
|
||||
go build -ldflags="-s -w" -o medi-wol cmd/server/main.go
|
||||
```
|
||||
|
||||
### Tests ausführen
|
||||
@ -107,6 +222,47 @@ go build -o medi-wol cmd/server/main.go
|
||||
go test ./...
|
||||
```
|
||||
|
||||
### Code-Qualität prüfen
|
||||
```bash
|
||||
# Code formatieren
|
||||
go fmt ./...
|
||||
|
||||
# Linting (falls golint installiert ist)
|
||||
golint ./...
|
||||
|
||||
# Vet prüfen
|
||||
go vet ./...
|
||||
```
|
||||
|
||||
## Deployment
|
||||
|
||||
### Windows Service
|
||||
```bash
|
||||
# Mit NSSM (Non-Sucking Service Manager)
|
||||
nssm install Medi-WOL "C:\path\to\medi-wol.exe"
|
||||
nssm set Medi-WOL AppDirectory "C:\path\to\medi-wol"
|
||||
nssm start Medi-WOL
|
||||
```
|
||||
|
||||
### Linux Systemd Service
|
||||
```ini
|
||||
# /etc/systemd/system/medi-wol.service
|
||||
[Unit]
|
||||
Description=Medi-WOL Wake-on-LAN Manager
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=medi-wol
|
||||
WorkingDirectory=/opt/medi-wol
|
||||
ExecStart=/opt/medi-wol/medi-wol
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
## Lizenz
|
||||
|
||||
Dieses Projekt ist für den internen Gebrauch bestimmt.
|
||||
|
||||
33
build.bat
Normal file
33
build.bat
Normal file
@ -0,0 +1,33 @@
|
||||
@echo off
|
||||
echo Building Medi-WOL for multiple platforms...
|
||||
|
||||
REM Erstelle dist-Verzeichnis
|
||||
if not exist dist mkdir dist
|
||||
|
||||
echo Building for Windows AMD64...
|
||||
go build -ldflags="-s -w" -o dist/medi-wol-windows-amd64.exe cmd/server/main.go
|
||||
|
||||
echo Building for Linux AMD64...
|
||||
set GOOS=linux
|
||||
set GOARCH=amd64
|
||||
go build -ldflags="-s -w" -o dist/medi-wol-linux-amd64 cmd/server/main.go
|
||||
|
||||
echo Building for Linux ARM64...
|
||||
set GOOS=linux
|
||||
set GOARCH=arm64
|
||||
go build -ldflags="-s -w" -o dist/medi-wol-linux-arm64 cmd/server/main.go
|
||||
|
||||
echo Building for Windows ARM64...
|
||||
set GOOS=windows
|
||||
set GOARCH=arm64
|
||||
go build -ldflags="-s -w" -o dist/medi-wol-windows-arm64.exe cmd/server/main.go
|
||||
|
||||
REM Zurücksetzen auf Windows AMD64
|
||||
set GOOS=windows
|
||||
set GOARCH=amd64
|
||||
|
||||
echo.
|
||||
echo Build complete! Binaries created in dist/ folder:
|
||||
dir dist
|
||||
echo.
|
||||
pause
|
||||
23
build.sh
Normal file
23
build.sh
Normal file
@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Building Medi-WOL for multiple platforms..."
|
||||
|
||||
# Erstelle dist-Verzeichnis
|
||||
mkdir -p dist
|
||||
|
||||
echo "Building for Linux AMD64..."
|
||||
go build -ldflags="-s -w" -o dist/medi-wol-linux-amd64 cmd/server/main.go
|
||||
|
||||
echo "Building for Linux ARM64..."
|
||||
GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o dist/medi-wol-linux-arm64 cmd/server/main.go
|
||||
|
||||
echo "Building for Windows AMD64..."
|
||||
GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o dist/medi-wol-windows-amd64.exe cmd/server/main.go
|
||||
|
||||
echo "Building for Windows ARM64..."
|
||||
GOOS=windows GOARCH=arm64 go build -ldflags="-s -w" -o dist/medi-wol-windows-arm64.exe cmd/server/main.go
|
||||
|
||||
echo ""
|
||||
echo "Build complete! Binaries created in dist/ folder:"
|
||||
ls -la dist/
|
||||
echo ""
|
||||
BIN
dist/medi-wol-linux-amd64
vendored
Normal file
BIN
dist/medi-wol-linux-amd64
vendored
Normal file
Binary file not shown.
BIN
dist/medi-wol-linux-arm64
vendored
Normal file
BIN
dist/medi-wol-linux-arm64
vendored
Normal file
Binary file not shown.
Reference in New Issue
Block a user