license-server/main.go

42 lines
960 B
Go

package main
import (
"license-server/license"
"license-server/storage"
"os"
"time"
"github.com/gofiber/fiber/v2"
)
func main() {
db := storage.InitDB()
license.InitCrypto(db)
app := fiber.New()
// --- 简单健康检查 ---
app.Get("/api/health", func(c *fiber.Ctx) error {
return c.JSON(fiber.Map{
"status": "ok",
"ts": time.Now().Unix(),
})
})
// --- 公钥只读接口 ---
app.Get("/api/license/public-key", func(c *fiber.Ctx) error {
return c.JSON(fiber.Map{
"public_key_pem": license.ExportPublicKeyPEM(),
})
})
// (可选)启动时把公钥写文件,便于手工分发
_ = os.WriteFile("/root/database/public_key.pem",
[]byte(license.ExportPublicKeyPEM()), 0644)
app.Post("/api/license/generate", license.GenerateLicenseHandler(db))
app.Post("/api/license/activate", license.ActivateLicenseHandler(db))
app.Post("/api/license/validate", license.ValidateLicenseHandler(db))
app.Listen(":13579")
}