package server import ( "strings" "github.com/labstack/echo/v4" ) type ( Host struct { Echo *echo.Echo } ) var Server = echo.New() var hosts = map[string]*Host{} func init() { Server.Any("/*", func(c echo.Context) (err error) { req := c.Request() res := c.Response() host := hosts[strings.ToLower(req.Host)] if host == nil { host = hosts[""] if host == nil { return echo.ErrNotFound } } host.Echo.ServeHTTP(res, req) return }) } func RegisterHostname(hostname string, h *Host) { hosts[hostname] = h }