From 7dd664fdc4a31eb88d00cb571abe222874af9b78 Mon Sep 17 00:00:00 2001 From: kolaente Date: Tue, 24 Mar 2026 19:45:52 +0100 Subject: [PATCH] feat(init): integrate license validation into startup and shutdown Call license.Init() after database initialization and before the web server starts. Call license.Shutdown() during graceful shutdown to stop the background check goroutine. --- pkg/cmd/web.go | 2 ++ pkg/initialize/init.go | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/pkg/cmd/web.go b/pkg/cmd/web.go index aac06fef9..e53fc3e7c 100644 --- a/pkg/cmd/web.go +++ b/pkg/cmd/web.go @@ -32,6 +32,7 @@ import ( "code.vikunja.io/api/pkg/config" "code.vikunja.io/api/pkg/cron" "code.vikunja.io/api/pkg/initialize" + "code.vikunja.io/api/pkg/license" "code.vikunja.io/api/pkg/log" "code.vikunja.io/api/pkg/plugins" "code.vikunja.io/api/pkg/routes" @@ -195,6 +196,7 @@ var webCmd = &cobra.Command{ log.Fatalf("Server shutdown failed: %v", err) } cron.Stop() + license.Shutdown() plugins.Shutdown() }, } diff --git a/pkg/initialize/init.go b/pkg/initialize/init.go index 4296cfd12..9607787cd 100644 --- a/pkg/initialize/init.go +++ b/pkg/initialize/init.go @@ -25,6 +25,7 @@ import ( "code.vikunja.io/api/pkg/events" "code.vikunja.io/api/pkg/files" "code.vikunja.io/api/pkg/i18n" + "code.vikunja.io/api/pkg/license" "code.vikunja.io/api/pkg/log" "code.vikunja.io/api/pkg/mail" "code.vikunja.io/api/pkg/migration" @@ -93,6 +94,9 @@ func FullInitWithoutAsync() { // Set Engine InitEngines() + // Initialize license validation + license.Init() + // Start the mail daemon mail.StartMailDaemon()