From ee4dff09c938ff9976643ff779522b45433cd051 Mon Sep 17 00:00:00 2001
From: mrhid6
Date: Fri, 24 Jul 2026 15:20:00 +0100
Subject: [PATCH] feat: show the instance ID after setup
---
server/internal/auth/local.go | 6 +++++-
web/app/setup/page.tsx | 19 +++++++++++++++++--
web/lib/api.ts | 1 +
3 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/server/internal/auth/local.go b/server/internal/auth/local.go
index ecd65f1..9d6b513 100644
--- a/server/internal/auth/local.go
+++ b/server/internal/auth/local.go
@@ -126,7 +126,11 @@ func HandleBootstrap(c *gin.Context) {
return
}
SetSessionCookie(c, sessionID)
- c.JSON(http.StatusCreated, gin.H{"instance": inst, "slug": inst.Slug})
+ c.JSON(http.StatusCreated, gin.H{
+ "instance": inst,
+ "slug": inst.Slug,
+ "instance_id": inst.InstanceID,
+ })
}
func HandleMe(c *gin.Context) {
diff --git a/web/app/setup/page.tsx b/web/app/setup/page.tsx
index 76b3a6f..2922088 100644
--- a/web/app/setup/page.tsx
+++ b/web/app/setup/page.tsx
@@ -39,7 +39,7 @@ export default function SetupPage() {
const [password, setPassword] = useState("");
const [confirm, setConfirm] = useState("");
const [validationError, setValidationError] = useState(null);
- const [created, setCreated] = useState<{ slug: string; loginUrl: string } | null>(null);
+ const [created, setCreated] = useState<{ slug: string; loginUrl: string; instanceId: string } | null>(null);
useEffect(() => {
auth.bootstrapStatus()
@@ -56,7 +56,7 @@ export default function SetupPage() {
} = useMutation({
mutationFn: () => auth.bootstrap({ instance_name: instanceName, email, password }),
onSuccess: (res) => {
- setCreated({ slug: res.slug, loginUrl: instanceLoginUrlForSlug(res.slug) });
+ setCreated({ slug: res.slug, loginUrl: instanceLoginUrlForSlug(res.slug), instanceId: res.instance_id });
},
});
@@ -93,6 +93,21 @@ export default function SetupPage() {
you just chose.
{created.loginUrl}
+
+
+
Instance ID — needed to activate a licence
+
+ {created.instanceId}
+
+
+
+