From f04e95f7f6fe58bec46a4158dc41326431993320 Mon Sep 17 00:00:00 2001 From: charles-gauthereau Date: Wed, 24 Jun 2026 17:42:00 +0200 Subject: [PATCH] fix: persist onboarding=true on boot when SKIP_ONBOARDING is set --- src/utils/init/index.ts | 2 ++ src/utils/init/onboarding.ts | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 src/utils/init/onboarding.ts diff --git a/src/utils/init/index.ts b/src/utils/init/index.ts index 9108fb8e..70ef9f45 100644 --- a/src/utils/init/index.ts +++ b/src/utils/init/index.ts @@ -6,6 +6,7 @@ import {setupCronJobs} from "@/utils/init/cron"; import {createSettingsIfNotExist} from "@/utils/init/setting"; import {createDefaultOrganization} from "@/utils/init/organization"; import {createDefaultUser} from "@/utils/init/user"; +import {markOnboardingDoneIfSkipped} from "@/utils/init/onboarding"; const log = logger.child({module: "init"}); @@ -18,6 +19,7 @@ export async function init() { await createDefaultOrganization(); await createSettingsIfNotExist(); await createDefaultUser(); + await markOnboardingDoneIfSkipped(); log.info("====Initialization completed===="); await setupCronJobs(); if ( diff --git a/src/utils/init/onboarding.ts b/src/utils/init/onboarding.ts new file mode 100644 index 00000000..43796435 --- /dev/null +++ b/src/utils/init/onboarding.ts @@ -0,0 +1,18 @@ +import { db } from "@/db"; +import * as drizzleDb from "@/db"; +import { eq } from "drizzle-orm"; +import { env } from "@/env.mjs"; +import { logger } from "@/lib/logger"; + +const log = logger.child({ module: "init/onboarding" }); + +export async function markOnboardingDoneIfSkipped() { + if (env.SKIP_ONBOARDING !== "true") return; + + await db + .update(drizzleDb.schemas.setting) + .set({ onboarding: true }) + .where(eq(drizzleDb.schemas.setting.name, "system")); + + log.info("SKIP_ONBOARDING=true: marked onboarding as done."); +}