fix callback URL to use configurable public base

Separate callback URL generation from LISTEN_ADDR by introducing CALLBACK_BASE_URL with a localhost default for local development.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-04-27 19:02:31 +07:00
co-authored by Claude Opus 4.7
parent 8815c20c13
commit cc9d54afdc
6 changed files with 113 additions and 2 deletions
+7
View File
@@ -36,6 +36,9 @@ type Config struct {
// Server
ListenAddr string
// Public callback base URL for OpenClaw callbacks
CallbackBaseURL string
}
// Load reads .env (if present) and populates Config from environment variables.
@@ -59,6 +62,7 @@ func Load() (*Config, error) {
SystemEmail: os.Getenv("SYSTEM_EMAIL"),
IMAPProxyURL: os.Getenv("IMAP_PROXY_URL"),
ListenAddr: os.Getenv("LISTEN_ADDR"),
CallbackBaseURL: os.Getenv("CALLBACK_BASE_URL"),
}
if raw := os.Getenv("WHITELIST_EMAILS"); raw != "" {
@@ -72,6 +76,9 @@ func Load() (*Config, error) {
if cfg.ListenAddr == "" {
cfg.ListenAddr = ":8080"
}
if cfg.CallbackBaseURL == "" {
cfg.CallbackBaseURL = "http://localhost"
}
if err := cfg.validate(); err != nil {
return nil, err