package main import ( "fmt" "log" "net/http" "os" "github.com/go-chi/chi" "github.com/go-chi/cors" "github.com/joho/godotenv" ) func main() { godotenv.Load(".env") portString := os.Getenv("PORT") fmt.Println("hello on: ", portString) if portString == "" { log.Fatal("$PORT must be set") } router := chi.NewRouter() srv := &http.Server{ Handler: router, Addr: ":" + portString, } router.Use(cors.Handler(cors.Options{ AllowedOrigins: []string{"*"}, AllowedMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"}, AllowedHeaders: []string{"*"}, ExposedHeaders: []string{"Link"}, AllowCredentials: false, MaxAge: 300, })) routerV1 := chi.NewRouter() routerV1.Get("/health", HandlerHealth) routerV1.Get("/error", HandlerErrorResponse) router.Mount("/v1", routerV1) log.Default().Printf("server running on port: %v", portString) err := srv.ListenAndServe() if err != nil { log.Fatal("Error starting server: ", err) } fmt.Println("PORT", portString) }