package main import ( "log" "net/http" "github.com/kelseyhightower/envconfig" ) type Config struct { Address string `default:":1234"` Proxy Proxy `default:"/api/,http://localhost:5678"` } func main() { var config Config if err := envconfig.Process("APP", &config); err != nil { panic(err) } for prefix, target := range config.Proxy { log.Printf("Proxy %s to %s", prefix, target) http.Handle(prefix, proxyHandler(target)) } http.Handle("/", assetsHandler()) log.Printf("Listen on %s", config.Address) http.ListenAndServe(config.Address, nil) }