mirror of
https://github.com/swissmakers/fail2ban-ui.git
synced 2026-04-11 13:47:05 +02:00
Implement central logging function and debug mode switching
This commit is contained in:
@@ -1,23 +1,70 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/swissmakers/fail2ban-ui/internal/config"
|
||||
"github.com/swissmakers/fail2ban-ui/pkg/web"
|
||||
)
|
||||
|
||||
func main() {
|
||||
r := gin.Default()
|
||||
settings := config.GetSettings()
|
||||
|
||||
// Load HTML templates from pkg/web/templates
|
||||
r.LoadHTMLGlob("pkg/web/templates/*")
|
||||
// Set Gin mode based on settings
|
||||
if settings.Debug {
|
||||
gin.SetMode(gin.DebugMode)
|
||||
} else {
|
||||
gin.SetMode(gin.ReleaseMode)
|
||||
}
|
||||
|
||||
// Register our routes (IndexHandler, /api/summary, /api/jails/:jail/unban/:ip)
|
||||
web.RegisterRoutes(r)
|
||||
router := gin.Default()
|
||||
router.LoadHTMLGlob("pkg/web/templates/*") // Load HTML templates from pkg/web/templates
|
||||
web.RegisterRoutes(router) // Register routes (IndexHandler, /api/summary, jail/unban/:ip) etc..
|
||||
|
||||
log.Println("Starting Fail2ban-UI server on :8080.")
|
||||
if err := r.Run(":8080"); err != nil {
|
||||
printWelcomeBanner()
|
||||
log.Println("--- Fail2Ban-UI started in", gin.Mode(), "mode ---")
|
||||
log.Println("Server listening on port :8080.")
|
||||
|
||||
if err := router.Run(":8080"); err != nil {
|
||||
log.Fatalf("Server crashed: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
// printWelcomeBanner prints a cool Tux banner with startup info
|
||||
func printWelcomeBanner() {
|
||||
greeting := getGreeting()
|
||||
const tuxBanner = `
|
||||
.--.
|
||||
|o_o | %s
|
||||
|:_/ |
|
||||
// \ \
|
||||
(| | )
|
||||
/'\_ _/'\
|
||||
\___)=(___/
|
||||
|
||||
Fail2Ban UI - A Swissmade Management Interface
|
||||
----------------------------------------------
|
||||
Developers: https://swissmakers.ch
|
||||
Mode: %s
|
||||
Listening on: http://0.0.0.0:8080
|
||||
----------------------------------------------
|
||||
|
||||
`
|
||||
fmt.Printf(tuxBanner, greeting, gin.Mode())
|
||||
}
|
||||
|
||||
// getGreeting returns a friendly greeting based on the time of day
|
||||
func getGreeting() string {
|
||||
hour := time.Now().Hour()
|
||||
switch {
|
||||
case hour < 12:
|
||||
return "Good morning!"
|
||||
case hour < 18:
|
||||
return "Good afternoon!"
|
||||
default:
|
||||
return "Good evening!"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user