Files
tecamino-dbm/main.go
2025-06-19 19:22:23 +02:00

55 lines
1.4 KiB
Go

package main
import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/tecamino/tecamino-dbm/args"
"github.com/tecamino/tecamino-dbm/dbm"
ws "github.com/tecamino/tecamino-dbm/websocket"
)
func main() {
// cli arguments
a := args.Init()
// initiate new database manger
dbmHandler, err := dbm.NewDbmHandler(a)
if err != nil {
panic(err)
}
//save database after exeutabe ends
defer dbmHandler.SaveDb()
//initialize new server
dbmHandler.Log.Debug("main", "initialize new server instance")
s := ws.NewServer(a.AllowOrigins)
//set routes
dbmHandler.Log.Debug("main", "setting routes")
s.Routes.GET("/ws", dbmHandler.WebSocket)
s.Routes.GET("/saveData", dbmHandler.SaveData)
s.Routes.POST("/json_data", dbmHandler.Json_Data)
s.Routes.DELETE("/json_data", dbmHandler.Delete)
s.Routes.GET("/", func(c *gin.Context) {
c.String(200, "DBM WebSocket Server is running!")
})
// start http server
go func() {
dbmHandler.Log.Info("main", fmt.Sprintf("http listen on ip: %s port: %d", a.Ip, a.Port.Http))
if err := s.ServeHttp(a.Ip, a.Port.Http); err != nil {
dbmHandler.Log.Error("main", "error http server "+err.Error())
panic(err)
}
}()
// start https server
dbmHandler.Log.Info("main", fmt.Sprintf("https listen on ip: %s port: %d", a.Ip, a.Port.Https))
if err := s.ServeHttps(a.Ip, a.Port.Https, a.Cert); err != nil {
dbmHandler.Log.Error("main", "error http server "+err.Error())
panic(err)
}
}