package main import ( "log" "net/http" "time" "server/database" "server/handlers" ) func main() { const database_path string = "./react_go.db" const address string = "0.0.0.0" const port string = "80" database.Init(database_path) defer database.Close() log.Printf("database initialised at %s\n", database_path) mux := http.NewServeMux() spa := spaHandler{staticPath: "./dist"} mux.Handle("/", spa) mux.HandleFunc("/api/login", handlers.Login) mux.HandleFunc("/api/logout", handlers.Logout) mux.HandleFunc("/api/signup", handlers.Signup) mux.HandleFunc("/api/refresh", handlers.Refresh) mux.HandleFunc("/api/posts", handlers.Posts) mux.HandleFunc("/api/post", handlers.Post) mux.HandleFunc("/image/", handlers.Image) server := &http.Server{ Addr: address + ":" + port, Handler: mux, /* This is good practice: https://github.com/gorilla/mux */ WriteTimeout: 15 * time.Second, ReadTimeout: 15 * time.Second, } log.Printf("server listening on %s:%s\n", address, port) log.Fatal(server.ListenAndServe()) }