diff --git a/install/config/docker-compose.yml b/install/config/docker-compose.yml index 90613b2a..1d8b73b4 100644 --- a/install/config/docker-compose.yml +++ b/install/config/docker-compose.yml @@ -1,7 +1,7 @@ name: pangolin services: pangolin: - image: docker.io/fosrl/pangolin:{{.PangolinVersion}} + image: docker.io/fosrl/pangolin:{{if .IsEnterprise}}ee-{{end}}{{.PangolinVersion}} container_name: pangolin restart: unless-stopped volumes: diff --git a/install/input.go b/install/input.go index cf8fd7a3..db70b4c0 100644 --- a/install/input.go +++ b/install/input.go @@ -54,13 +54,31 @@ func readBool(reader *bufio.Reader, prompt string, defaultValue bool) bool { if defaultValue { defaultStr = "yes" } - input := readString(reader, prompt+" (yes/no)", defaultStr) - return strings.ToLower(input) == "yes" + for { + input := readString(reader, prompt+" (yes/no)", defaultStr) + lower := strings.ToLower(input) + if lower == "yes" { + return true + } else if lower == "no" { + return false + } else { + fmt.Println("Please enter 'yes' or 'no'.") + } + } } func readBoolNoDefault(reader *bufio.Reader, prompt string) bool { - input := readStringNoDefault(reader, prompt+" (yes/no)") - return strings.ToLower(input) == "yes" + for { + input := readStringNoDefault(reader, prompt+" (yes/no)") + lower := strings.ToLower(input) + if lower == "yes" { + return true + } else if lower == "no" { + return false + } else { + fmt.Println("Please enter 'yes' or 'no'.") + } + } } func readInt(reader *bufio.Reader, prompt string, defaultValue int) int { diff --git a/install/main.go b/install/main.go index f91b0576..de001df2 100644 --- a/install/main.go +++ b/install/main.go @@ -49,6 +49,7 @@ type Config struct { DoCrowdsecInstall bool EnableGeoblocking bool Secret string + IsEnterprise bool } type SupportedContainer string @@ -339,6 +340,8 @@ func collectUserInput(reader *bufio.Reader) Config { // Basic configuration fmt.Println("\n=== Basic Configuration ===") + config.IsEnterprise = readBoolNoDefault(reader, "Do you want to install the Enterprise version of Pangolin? The EE is free for persoal use or for businesses making less than 100k USD annually.") + config.BaseDomain = readString(reader, "Enter your base domain (no subdomain e.g. example.com)", "") // Set default dashboard domain after base domain is collected