Some checks failed
Build and Push Docker Image / Build image (push) Has been cancelled
59 lines
1.4 KiB
Go
59 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
|
|
"git.acooldomain.co/server-manager/backend/auth"
|
|
"git.acooldomain.co/server-manager/backend/models"
|
|
"git.acooldomain.co/server-manager/backend/servers"
|
|
"git.acooldomain.co/server-manager/backend/users"
|
|
"github.com/gin-contrib/cors"
|
|
"github.com/gin-gonic/gin"
|
|
"gopkg.in/yaml.v3"
|
|
)
|
|
|
|
const CONFIG_PATH = "CONFIG_PATH"
|
|
|
|
func main() {
|
|
router := gin.Default()
|
|
|
|
cors_config := cors.DefaultConfig()
|
|
cors_config.AllowCredentials = true
|
|
cors_config.ExposeHeaders = []string{"set-cookie"}
|
|
file, err := os.Open(os.Getenv(CONFIG_PATH))
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
var config models.GlobalConfig
|
|
err = yaml.NewDecoder(file).Decode(&config)
|
|
|
|
cors_config.AllowOriginFunc = func(origin string) bool {
|
|
return origin[len(origin)-len(config.Domain):] == config.Domain
|
|
}
|
|
|
|
router.Use(cors.New(cors_config))
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
loggedIn := auth.LoadGroup(router.Group("/auth"), config)
|
|
|
|
usersGroup := router.Group("/users")
|
|
usersGroup.Use(loggedIn)
|
|
users.LoadGroup(usersGroup, config)
|
|
|
|
serversGroup := router.Group("/servers")
|
|
serversGroup.Use(loggedIn)
|
|
servers.LoadGroup(serversGroup, config)
|
|
|
|
browsersGroup := router.Group("/browsers")
|
|
browsersGroup.Use(loggedIn)
|
|
servers.LoadBrowsersGroup(browsersGroup, config)
|
|
|
|
imagesGroup := router.Group("/images")
|
|
imagesGroup.Use(loggedIn)
|
|
servers.LoadeImagesGroup(imagesGroup, config)
|
|
|
|
router.Run("0.0.0.0:8080")
|
|
}
|