mirror of
https://github.com/swissmakers/fail2ban-ui.git
synced 2026-04-17 05:53:15 +02:00
Make server-port configurable
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
@@ -24,6 +25,7 @@ func main() {
|
|||||||
|
|
||||||
// Create a new Gin router.
|
// Create a new Gin router.
|
||||||
router := gin.Default()
|
router := gin.Default()
|
||||||
|
serverPort := strconv.Itoa(int(settings.Port))
|
||||||
|
|
||||||
// Load HTML templates depending on whether the application is running inside a container.
|
// Load HTML templates depending on whether the application is running inside a container.
|
||||||
_, container := os.LookupEnv("CONTAINER")
|
_, container := os.LookupEnv("CONTAINER")
|
||||||
@@ -38,18 +40,18 @@ func main() {
|
|||||||
// Register all application routes, including the static file serving route for locales.
|
// Register all application routes, including the static file serving route for locales.
|
||||||
web.RegisterRoutes(router)
|
web.RegisterRoutes(router)
|
||||||
|
|
||||||
printWelcomeBanner()
|
printWelcomeBanner(serverPort)
|
||||||
log.Println("--- Fail2Ban-UI started in", gin.Mode(), "mode ---")
|
log.Println("--- Fail2Ban-UI started in", gin.Mode(), "mode ---")
|
||||||
log.Println("Server listening on port :8080.")
|
log.Println("Server listening on port", serverPort, ".")
|
||||||
|
|
||||||
// Start the server on port 8080.
|
// Start the server on port 8080.
|
||||||
if err := router.Run(":8080"); err != nil {
|
if err := router.Run(":", serverPort); err != nil {
|
||||||
log.Fatalf("Server crashed: %v", err)
|
log.Fatalf("Server crashed: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// printWelcomeBanner prints a cool Tux banner with startup info.
|
// printWelcomeBanner prints a cool Tux banner with startup info.
|
||||||
func printWelcomeBanner() {
|
func printWelcomeBanner(appPort string) {
|
||||||
greeting := getGreeting()
|
greeting := getGreeting()
|
||||||
const tuxBanner = `
|
const tuxBanner = `
|
||||||
.--.
|
.--.
|
||||||
@@ -62,13 +64,13 @@ func printWelcomeBanner() {
|
|||||||
|
|
||||||
Fail2Ban UI - A Swissmade Management Interface
|
Fail2Ban UI - A Swissmade Management Interface
|
||||||
----------------------------------------------
|
----------------------------------------------
|
||||||
Developers: https://swissmakers.ch
|
Developers: https://swissmakers.ch
|
||||||
Mode: %s
|
Mode: %s
|
||||||
Listening on: http://0.0.0.0:8080
|
Listening on: http://0.0.0.0:%s
|
||||||
----------------------------------------------
|
----------------------------------------------
|
||||||
|
|
||||||
`
|
`
|
||||||
fmt.Printf(tuxBanner, greeting, gin.Mode())
|
fmt.Printf(tuxBanner, greeting, gin.Mode(), appPort)
|
||||||
}
|
}
|
||||||
|
|
||||||
// getGreeting returns a friendly greeting based on the time of day.
|
// getGreeting returns a friendly greeting based on the time of day.
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ type SMTPSettings struct {
|
|||||||
// AppSettings holds the main UI settings and Fail2ban configuration
|
// AppSettings holds the main UI settings and Fail2ban configuration
|
||||||
type AppSettings struct {
|
type AppSettings struct {
|
||||||
Language string `json:"language"`
|
Language string `json:"language"`
|
||||||
|
Port int `json:"port"`
|
||||||
Debug bool `json:"debug"`
|
Debug bool `json:"debug"`
|
||||||
ReloadNeeded bool `json:"reloadNeeded"`
|
ReloadNeeded bool `json:"reloadNeeded"`
|
||||||
AlertCountries []string `json:"alertCountries"`
|
AlertCountries []string `json:"alertCountries"`
|
||||||
@@ -57,10 +58,11 @@ type AppSettings struct {
|
|||||||
|
|
||||||
// init paths to key-files
|
// init paths to key-files
|
||||||
const (
|
const (
|
||||||
settingsFile = "fail2ban-ui-settings.json" // this is relative to where the app was started
|
settingsFile = "fail2ban-ui-settings.json" // this is relative to where the app was started
|
||||||
jailFile = "/etc/fail2ban/jail.local" // Path to jail.local (to override conf-values from jail.conf)
|
defaultjailFile = "/etc/fail2ban/jail.conf"
|
||||||
jailDFile = "/etc/fail2ban/jail.d/ui-custom-action.conf"
|
jailFile = "/etc/fail2ban/jail.local" // Path to jail.local (to override conf-values from jail.conf)
|
||||||
actionFile = "/etc/fail2ban/action.d/ui-custom-action.conf"
|
jailDFile = "/etc/fail2ban/jail.d/ui-custom-action.conf"
|
||||||
|
actionFile = "/etc/fail2ban/action.d/ui-custom-action.conf"
|
||||||
)
|
)
|
||||||
|
|
||||||
// in-memory copy of settings
|
// in-memory copy of settings
|
||||||
@@ -97,6 +99,9 @@ func setDefaults() {
|
|||||||
if currentSettings.Language == "" {
|
if currentSettings.Language == "" {
|
||||||
currentSettings.Language = "en"
|
currentSettings.Language = "en"
|
||||||
}
|
}
|
||||||
|
if currentSettings.Port == 0 {
|
||||||
|
currentSettings.Port = 8080
|
||||||
|
}
|
||||||
if currentSettings.AlertCountries == nil {
|
if currentSettings.AlertCountries == nil {
|
||||||
currentSettings.AlertCountries = []string{"ALL"}
|
currentSettings.AlertCountries = []string{"ALL"}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user