Files
Charon/backend/cmd/api/main.go
T

40 lines
915 B
Go

package main
import (
"context"
"log"
"os/signal"
"syscall"
"github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/config"
"github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/database"
"github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/server"
"github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/version"
)
func main() {
cfg, err := config.Load()
if err != nil {
log.Fatalf("load config: %v", err)
}
db, err := database.Open(cfg.DatabasePath)
if err != nil {
log.Fatalf("connect database: %v", err)
}
srv, err := server.New(db, cfg)
if err != nil {
log.Fatalf("bootstrap server: %v", err)
}
log.Printf("starting %s backend on :%s", version.Name, cfg.HTTPPort)
ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
defer stop()
if err := srv.Run(ctx); err != nil {
log.Fatalf("server exited with error: %v", err)
}
}