From 516a3fa72cf74f32bffcea1f535c7125b2891dd9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 17 Nov 2025 09:49:53 +0000 Subject: [PATCH] Skip setup step 4 (host/port) when override vars are set - Modified setup/2.post.ts to check for WG_HOST and WG_CLIENT_PORT overrides - If both overrides are set, auto-populate host/port and mark setup as complete - Updated setup/2.vue to check setup status after user creation and redirect appropriately - Modified setup middleware to allow access to success page during setup - Setup now completes after step 2 when host/port are provided via environment variables Co-authored-by: kaaax0815 <32197462+kaaax0815@users.noreply.github.com> --- src/app/pages/setup/2.vue | 10 +++++++++- src/server/api/setup/2.post.ts | 15 ++++++++++++++- src/server/middleware/setup.ts | 7 ++++++- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/app/pages/setup/2.vue b/src/app/pages/setup/2.vue index 7c32e89c..d10f1d99 100644 --- a/src/app/pages/setup/2.vue +++ b/src/app/pages/setup/2.vue @@ -57,7 +57,15 @@ const _submit = useSubmit( { revert: async (success) => { if (success) { - await navigateTo('/setup/3'); + // Check if setup is complete (host/port were auto-set from overrides) + const setupStatus = await $fetch('/api/general/setup'); + if (setupStatus.done) { + // Setup is complete, redirect to success page + await navigateTo('/setup/success'); + } else { + // Continue to step 3 + await navigateTo('/setup/3'); + } } }, noSuccessToast: true, diff --git a/src/server/api/setup/2.post.ts b/src/server/api/setup/2.post.ts index 29c0c769..bfc195be 100644 --- a/src/server/api/setup/2.post.ts +++ b/src/server/api/setup/2.post.ts @@ -8,6 +8,19 @@ export default defineSetupEventHandler(2, async ({ event }) => { await Database.users.create(username, password); - await Database.general.setSetupStep(3); + // If host and port are overridden by environment variables, skip step 4 + const host = WG_CLIENT_OVERRIDE_ENV.HOST; + const port = WG_CLIENT_OVERRIDE_ENV.CLIENT_PORT; + + if (host && port) { + // Set the host and port from override variables + await Database.userConfigs.updateHostPort(host, port); + // Skip to done + await Database.general.setSetupStep(0); + } else { + // Proceed to step 3 (which leads to step 4) + await Database.general.setSetupStep(3); + } + return { success: true }; }); diff --git a/src/server/middleware/setup.ts b/src/server/middleware/setup.ts index c0db75b1..4cadf412 100644 --- a/src/server/middleware/setup.ts +++ b/src/server/middleware/setup.ts @@ -9,12 +9,17 @@ export default defineEventHandler(async (event) => { const { step, done } = await Database.general.getSetupStep(); if (!done) { - const parsedSetup = url.pathname.match(/\/setup\/(\d)/); + const parsedSetup = url.pathname.match(/\/setup\/(\d|migrate|success)/); if (!parsedSetup) { return sendRedirect(event, `/setup/1`, 302); } const [_, currentSetup] = parsedSetup; + // Allow access to success page during setup + if (currentSetup === 'success') { + return; + } + if (step.toString() === currentSetup) { return; }