From 86654c8ee5e86e5f02a8b5ee9c372bbacdf0f0f0 Mon Sep 17 00:00:00 2001 From: madonuko Date: Sun, 5 Jul 2026 16:28:16 +0800 Subject: [PATCH 1/7] feat: name generator for servers/create Resolves #21 --- apps/dashboard/src/lib/server/name-generator.ts | 8 ++++++++ .../projects/[projectid]/servers/create/+page.svelte | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 apps/dashboard/src/lib/server/name-generator.ts diff --git a/apps/dashboard/src/lib/server/name-generator.ts b/apps/dashboard/src/lib/server/name-generator.ts new file mode 100644 index 0000000..86ffd12 --- /dev/null +++ b/apps/dashboard/src/lib/server/name-generator.ts @@ -0,0 +1,8 @@ +const choices = [ + ["kitten", "cat", "neko", "puppy"], + ["box", "stack", "rack", "server"], +]; + +const choose = (i: int) => choices[i][Math.floor(Math.random() * choices[i].length)]; + +export const generateServerName = () => choose(0) + choose(1); diff --git a/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte b/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte index 655625d..d607c3a 100644 --- a/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte +++ b/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte @@ -28,6 +28,7 @@ Plus, X } from '@lucide/svelte'; + import { generateServerName } from '$lib/server/name-generator'; type PageData = { currentProject?: { id: string } | null; @@ -123,7 +124,7 @@ const ipv6Available = $derived(Boolean(data.ipamAvailability?.ipv6.available)); const bothNetworksAvailable = $derived(ipv4Available && ipv6Available); - let serverName = $state(''); + let serverName = $state(generateServerName()); let selectedImageId = $state(null); let selectedImageVersion = $state(null); let selectedPlanId = $state(null); From 0fa5ca2ed6862ef42d10524388357253afb498a0 Mon Sep 17 00:00:00 2001 From: madonuko Date: Mon, 6 Jul 2026 16:25:44 +0800 Subject: [PATCH 2/7] feat(name-generator): more choices from lea --- apps/dashboard/src/lib/server/name-generator.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/dashboard/src/lib/server/name-generator.ts b/apps/dashboard/src/lib/server/name-generator.ts index 86ffd12..19c1a49 100644 --- a/apps/dashboard/src/lib/server/name-generator.ts +++ b/apps/dashboard/src/lib/server/name-generator.ts @@ -1,6 +1,6 @@ const choices = [ - ["kitten", "cat", "neko", "puppy"], - ["box", "stack", "rack", "server"], + ["kitten", "cat", "neko", "puppy", "dog", "doggy"], + ["box", "stack", "rack", "server", "node"], ]; const choose = (i: int) => choices[i][Math.floor(Math.random() * choices[i].length)]; From 0423d36ed4a909d73eb9e399b0ae4fae620023fa Mon Sep 17 00:00:00 2001 From: madonuko Date: Mon, 6 Jul 2026 17:41:27 +0800 Subject: [PATCH 3/7] feat: onclick `` regenerateServerName somebody please test my code and probably need to add a bunch of tailwind classes --- .../(app)/projects/[projectid]/servers/create/+page.svelte | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte b/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte index d607c3a..96bd3f6 100644 --- a/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte +++ b/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte @@ -26,7 +26,8 @@ EyeOff, HardDriveUpload, Plus, - X + X, + Dices } from '@lucide/svelte'; import { generateServerName } from '$lib/server/name-generator'; @@ -125,6 +126,9 @@ const bothNetworksAvailable = $derived(ipv4Available && ipv6Available); let serverName = $state(generateServerName()); + function regenerateServerName() { + serverName = generateServerName(); + } let selectedImageId = $state(null); let selectedImageVersion = $state(null); let selectedPlanId = $state(null); @@ -424,6 +428,7 @@ placeholder="my-server" class="h-11 text-base sm:h-9 sm:text-sm" /> + From 4ea741ffcda3c1b24d96562aacfbe882367ab978 Mon Sep 17 00:00:00 2001 From: madonuko Date: Sun, 5 Jul 2026 16:28:16 +0800 Subject: [PATCH 4/7] feat: name generator for servers/create Resolves #21 --- apps/dashboard/src/lib/server/name-generator.ts | 8 ++++++++ .../projects/[projectid]/servers/create/+page.svelte | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 apps/dashboard/src/lib/server/name-generator.ts diff --git a/apps/dashboard/src/lib/server/name-generator.ts b/apps/dashboard/src/lib/server/name-generator.ts new file mode 100644 index 0000000..86ffd12 --- /dev/null +++ b/apps/dashboard/src/lib/server/name-generator.ts @@ -0,0 +1,8 @@ +const choices = [ + ["kitten", "cat", "neko", "puppy"], + ["box", "stack", "rack", "server"], +]; + +const choose = (i: int) => choices[i][Math.floor(Math.random() * choices[i].length)]; + +export const generateServerName = () => choose(0) + choose(1); diff --git a/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte b/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte index 655625d..d607c3a 100644 --- a/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte +++ b/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte @@ -28,6 +28,7 @@ Plus, X } from '@lucide/svelte'; + import { generateServerName } from '$lib/server/name-generator'; type PageData = { currentProject?: { id: string } | null; @@ -123,7 +124,7 @@ const ipv6Available = $derived(Boolean(data.ipamAvailability?.ipv6.available)); const bothNetworksAvailable = $derived(ipv4Available && ipv6Available); - let serverName = $state(''); + let serverName = $state(generateServerName()); let selectedImageId = $state(null); let selectedImageVersion = $state(null); let selectedPlanId = $state(null); From f983db6c4f37eacd79e1aba0b4e66dd2b8b4fdd0 Mon Sep 17 00:00:00 2001 From: madonuko Date: Mon, 6 Jul 2026 16:25:44 +0800 Subject: [PATCH 5/7] feat(name-generator): more choices from lea --- apps/dashboard/src/lib/server/name-generator.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/dashboard/src/lib/server/name-generator.ts b/apps/dashboard/src/lib/server/name-generator.ts index 86ffd12..19c1a49 100644 --- a/apps/dashboard/src/lib/server/name-generator.ts +++ b/apps/dashboard/src/lib/server/name-generator.ts @@ -1,6 +1,6 @@ const choices = [ - ["kitten", "cat", "neko", "puppy"], - ["box", "stack", "rack", "server"], + ["kitten", "cat", "neko", "puppy", "dog", "doggy"], + ["box", "stack", "rack", "server", "node"], ]; const choose = (i: int) => choices[i][Math.floor(Math.random() * choices[i].length)]; From 31c8825a2ea54526902823185e4fdcea5ed4c66e Mon Sep 17 00:00:00 2001 From: madonuko Date: Mon, 6 Jul 2026 17:41:27 +0800 Subject: [PATCH 6/7] feat: onclick `` regenerateServerName somebody please test my code and probably need to add a bunch of tailwind classes --- .../(app)/projects/[projectid]/servers/create/+page.svelte | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte b/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte index d607c3a..96bd3f6 100644 --- a/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte +++ b/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte @@ -26,7 +26,8 @@ EyeOff, HardDriveUpload, Plus, - X + X, + Dices } from '@lucide/svelte'; import { generateServerName } from '$lib/server/name-generator'; @@ -125,6 +126,9 @@ const bothNetworksAvailable = $derived(ipv4Available && ipv6Available); let serverName = $state(generateServerName()); + function regenerateServerName() { + serverName = generateServerName(); + } let selectedImageId = $state(null); let selectedImageVersion = $state(null); let selectedPlanId = $state(null); @@ -424,6 +428,7 @@ placeholder="my-server" class="h-11 text-base sm:h-9 sm:text-sm" /> + From 36dbd1192028afe7c75057b43e7c6ad7c49766a8 Mon Sep 17 00:00:00 2001 From: madonuko Date: Tue, 7 Jul 2026 16:20:32 +0800 Subject: [PATCH 7/7] fix(servers/create): styles --- .gitignore | 2 ++ README.md | 4 +++- apps/dashboard/src/lib/{server => }/name-generator.ts | 0 .../projects/[projectid]/servers/create/+page.svelte | 8 +++++--- 4 files changed, 10 insertions(+), 4 deletions(-) rename apps/dashboard/src/lib/{server => }/name-generator.ts (100%) diff --git a/.gitignore b/.gitignore index ecaf88b..d31a31b 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,5 @@ vite.config.ts.timestamp-* # traces for local dev Trace-*.json + +bun.lock diff --git a/README.md b/README.md index ad30157..bdf22f0 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,9 @@ 2. Start a Postgres server: `podman run -p 5432:5432 -e POSTGRES_PASSWORD=mysecretpassword -d postgres` 3. Copy `apps/dashboard/.env.example` to `apps/dashboard/.env` 4. Add secrets to `apps/dashboard/.env` -5. Set up the database: `pnpm --filter stack-dashboard db:push` + - Update `CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_HYPERDRIVE` and set all `VPC` stuff to false + - set `BETTER_AUTH_SECRET`, `AUTUMN_SECRET` to anything +5. Set up the database: `pnpm --filter stack-dashboard db:migrate` 6. `pnpm --filter stack-dashboard dev` ### Postgres Setup diff --git a/apps/dashboard/src/lib/server/name-generator.ts b/apps/dashboard/src/lib/name-generator.ts similarity index 100% rename from apps/dashboard/src/lib/server/name-generator.ts rename to apps/dashboard/src/lib/name-generator.ts diff --git a/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte b/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte index 96bd3f6..145b3dc 100644 --- a/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte +++ b/apps/dashboard/src/routes/(app)/projects/[projectid]/servers/create/+page.svelte @@ -29,7 +29,7 @@ X, Dices } from '@lucide/svelte'; - import { generateServerName } from '$lib/server/name-generator'; + import { generateServerName } from '$lib/name-generator'; type PageData = { currentProject?: { id: string } | null; @@ -422,13 +422,15 @@ >Name -
+
- +