Seperate ask for base domain and dashboard domain

This commit is contained in:
Owen Schwartz 2025-01-11 11:33:06 -05:00
parent 832d7e5d6d
commit 484a099ee3
No known key found for this signature in database
GPG key ID: 8271FDFFD9E0CCBD
2 changed files with 12 additions and 6 deletions

View file

@ -1,6 +1,6 @@
app: app:
dashboard_url: https://{{.Domain}} dashboard_url: https://{{.DashboardDomain}}
base_domain: {{.Domain}} base_domain: {{.BaseDomain}}
log_level: info log_level: info
save_logs: false save_logs: false

View file

@ -18,7 +18,8 @@ import (
var configFiles embed.FS var configFiles embed.FS
type Config struct { type Config struct {
Domain string `yaml:"domain"` BaseDomain string `yaml:"baseDomain"`
DashboardDomain string `yaml:"dashboardUrl"`
LetsEncryptEmail string `yaml:"letsEncryptEmail"` LetsEncryptEmail string `yaml:"letsEncryptEmail"`
AdminUserEmail string `yaml:"adminUserEmail"` AdminUserEmail string `yaml:"adminUserEmail"`
AdminUserPassword string `yaml:"adminUserPassword"` AdminUserPassword string `yaml:"adminUserPassword"`
@ -102,12 +103,13 @@ func collectUserInput(reader *bufio.Reader) Config {
// Basic configuration // Basic configuration
fmt.Println("\n=== Basic Configuration ===") fmt.Println("\n=== Basic Configuration ===")
config.Domain = readString(reader, "Enter your domain name", "") config.BaseDomain = readString(reader, "Enter your base domain (no subdomain e.g. example.com)", "")
config.DashboardDomain = readString(reader, "Enter the domain for the Pangolin dashboard (e.g. example.com OR proxy.example.com)", config.BaseDomain)
config.LetsEncryptEmail = readString(reader, "Enter email for Let's Encrypt certificates", "") config.LetsEncryptEmail = readString(reader, "Enter email for Let's Encrypt certificates", "")
// Admin user configuration // Admin user configuration
fmt.Println("\n=== Admin User Configuration ===") fmt.Println("\n=== Admin User Configuration ===")
config.AdminUserEmail = readString(reader, "Enter admin user email", "admin@"+config.Domain) config.AdminUserEmail = readString(reader, "Enter admin user email", "admin@"+config.BaseDomain)
for { for {
config.AdminUserPassword = readString(reader, "Enter admin user password", "") config.AdminUserPassword = readString(reader, "Enter admin user password", "")
if valid, message := validatePassword(config.AdminUserPassword); valid { if valid, message := validatePassword(config.AdminUserPassword); valid {
@ -140,10 +142,14 @@ func collectUserInput(reader *bufio.Reader) Config {
} }
// Validate required fields // Validate required fields
if config.Domain == "" { if config.BaseDomain == "" {
fmt.Println("Error: Domain name is required") fmt.Println("Error: Domain name is required")
os.Exit(1) os.Exit(1)
} }
if config.DashboardDomain == "" {
fmt.Println("Error: Dashboard Domain name is required")
os.Exit(1)
}
if config.LetsEncryptEmail == "" { if config.LetsEncryptEmail == "" {
fmt.Println("Error: Let's Encrypt email is required") fmt.Println("Error: Let's Encrypt email is required")
os.Exit(1) os.Exit(1)