Mache Port konfigurierbar über Umgebungsvariablen und Kommandozeilenparameter
This commit is contained in:
@ -1,15 +1,43 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
"medi-wol/internal/database"
|
||||
"medi-wol/internal/handlers"
|
||||
"medi-wol/internal/wol"
|
||||
"os"
|
||||
"strconv"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// Kommandozeilenparameter definieren
|
||||
var port int
|
||||
flag.IntVar(&port, "port", 0, "Port für den Server (Standard: 8080 oder PORT Umgebungsvariable)")
|
||||
flag.Parse()
|
||||
|
||||
// Port aus Umgebungsvariable oder Standardwert
|
||||
if port == 0 {
|
||||
if envPort := os.Getenv("PORT"); envPort != "" {
|
||||
if parsedPort, err := strconv.Atoi(envPort); err == nil {
|
||||
port = parsedPort
|
||||
} else {
|
||||
log.Printf("Warnung: Ungültige PORT Umgebungsvariable '%s', verwende Standard-Port 8080", envPort)
|
||||
port = 8080
|
||||
}
|
||||
} else {
|
||||
port = 8080
|
||||
}
|
||||
}
|
||||
|
||||
// Port-Validierung
|
||||
if port < 1 || port > 65535 {
|
||||
log.Fatal("Fehler: Port muss zwischen 1 und 65535 liegen")
|
||||
}
|
||||
|
||||
// Datenbank initialisieren
|
||||
db, err := database.InitDB()
|
||||
if err != nil {
|
||||
@ -39,8 +67,11 @@ func main() {
|
||||
r.POST("/api/pcs/:id/wake", pcHandler.WakePC)
|
||||
|
||||
// Server starten
|
||||
log.Println("Server startet auf Port 8080...")
|
||||
if err := r.Run(":8080"); err != nil {
|
||||
serverAddr := fmt.Sprintf(":%d", port)
|
||||
log.Printf("Server startet auf Port %d...", port)
|
||||
log.Printf("Web-Oberfläche verfügbar unter: http://localhost%s", serverAddr)
|
||||
|
||||
if err := r.Run(serverAddr); err != nil {
|
||||
log.Fatal("Fehler beim Starten des Servers:", err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user