pull hostname from dashboard url in crowdsec install

This commit is contained in:
miloschwartz
2025-09-26 09:57:35 -07:00
parent 8e544c056f
commit 4710bab697

View File

@@ -10,6 +10,7 @@ import (
"math/rand"
"net"
"net/http"
"net/url"
"os"
"os/exec"
"path/filepath"
@@ -21,9 +22,9 @@ import (
// DO NOT EDIT THIS FUNCTION; IT MATCHED BY REGEX IN CICD
func loadVersions(config *Config) {
config.PangolinVersion = "1.9.4"
config.GerbilVersion = "1.2.1"
config.BadgerVersion = "1.2.0"
config.PangolinVersion = "replaceme"
config.GerbilVersion = "replaceme"
config.BadgerVersion = "replaceme"
}
//go:embed config/*
@@ -48,9 +49,9 @@ type Config struct {
TraefikBouncerKey string
DoCrowdsecInstall bool
Secret string
HybridMode bool
HybridId string
HybridSecret string
HybridMode bool
HybridId string
HybridSecret string
}
type SupportedContainer string
@@ -190,7 +191,13 @@ func main() {
return
}
config.DashboardDomain = appConfig.DashboardURL
parsedURL, err := url.Parse(appConfig.DashboardURL)
if err != nil {
fmt.Printf("Error parsing URL: %v\n", err)
return
}
config.DashboardDomain = parsedURL.Hostname()
config.LetsEncryptEmail = traefikConfig.LetsEncryptEmail
config.BadgerVersion = traefikConfig.BadgerVersion
@@ -205,17 +212,17 @@ func main() {
}
}
config.InstallationContainerType = podmanOrDocker(reader)
config.InstallationContainerType = podmanOrDocker(reader)
config.DoCrowdsecInstall = true
err := installCrowdsec(config)
if (err != nil) {
fmt.Printf("Error installing CrowdSec: %v\n", err)
return
}
err := installCrowdsec(config)
if err != nil {
fmt.Printf("Error installing CrowdSec: %v\n", err)
return
}
fmt.Println("CrowdSec installed successfully!")
return
fmt.Println("CrowdSec installed successfully!")
return
}
}
}
@@ -537,12 +544,12 @@ func printSetupToken(containerType SupportedContainer, dashboardDomain string) {
tokenStart := strings.Index(trimmedLine, "Token:")
if tokenStart != -1 {
token := strings.TrimSpace(trimmedLine[tokenStart+6:])
fmt.Printf("Setup token: %s\n", token)
fmt.Println("")
fmt.Println("This token is required to register the first admin account in the web UI at:")
fmt.Printf("https://%s/auth/initial-setup\n", dashboardDomain)
fmt.Println("")
fmt.Println("Save this token securely. It will be invalid after the first admin is created.")
fmt.Printf("Setup token: %s\n", token)
fmt.Println("")
fmt.Println("This token is required to register the first admin account in the web UI at:")
fmt.Printf("https://%s/auth/initial-setup\n", dashboardDomain)
fmt.Println("")
fmt.Println("Save this token securely. It will be invalid after the first admin is created.")
return
}
}
@@ -634,21 +641,21 @@ func run(name string, args ...string) error {
}
func checkPortsAvailable(port int) error {
addr := fmt.Sprintf(":%d", port)
ln, err := net.Listen("tcp", addr)
if err != nil {
return fmt.Errorf(
"ERROR: port %d is occupied or cannot be bound: %w\n\n",
port, err,
)
}
if closeErr := ln.Close(); closeErr != nil {
fmt.Fprintf(os.Stderr,
"WARNING: failed to close test listener on port %d: %v\n",
port, closeErr,
)
}
return nil
addr := fmt.Sprintf(":%d", port)
ln, err := net.Listen("tcp", addr)
if err != nil {
return fmt.Errorf(
"ERROR: port %d is occupied or cannot be bound: %w\n\n",
port, err,
)
}
if closeErr := ln.Close(); closeErr != nil {
fmt.Fprintf(os.Stderr,
"WARNING: failed to close test listener on port %d: %v\n",
port, closeErr,
)
}
return nil
}
func checkIsPangolinInstalledWithHybrid() bool {