backend/main.go
ACoolName 8ac960102a
Some checks failed
Build and Push Docker Image / Build image (push) Has been cancelled
fixed initial user
2025-04-09 03:15:38 +03:00

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")
}