package main import ( "embed" "log" "net/http" "os" "os/signal" "syscall" "github.com/gin-gonic/gin" ) //go:embed "html" var indexHTML embed.FS func main() { //For General File Storage os.MkdirAll("data", 0755) r := gin.Default() r.GET("/", index) r.GET("/update", update) r.GET("/start", startServer) r.GET("/stop", stopServer) r.GET("/backup.zip", backup) r.POST("/configure", configure) srv := &http.Server{ Addr: ":2169", Handler: r, } go func() { if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed { log.Fatalf("listen: %s\n", err) } }() quit := make(chan os.Signal, 10) signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM) <-quit log.Println("Shutdown Server ...") }