diff --git a/.gitignore b/.gitignore index 402f93a..e49a16e 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,9 @@ vite.config.ts.timestamp-* # traces for local dev Trace-*.json +# bun lockfile +bun.lock + # cached VyOS ISOs dev/vyos/.cache diff --git a/README.md b/README.md index cc11e56..96d8c9c 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ 4. `pve/init-cluster.sh` 5. Copy `apps/dashboard/.env.example` to `apps/dashboard/.env` 6. Add secrets to `apps/dashboard/.env` + - Update `CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_HYPERDRIVE` and set all `VPC` stuff to false + - set `BETTER_AUTH_SECRET`, `AUTUMN_SECRET` to anything 7. Set up the database: `pnpm --filter stack-dashboard db:migrate` 8. Seed test IPs: `podman exec -i fyra-postgres psql -U postgres < dev/seed-ipam.sql` 9. `pnpm --filter stack-dashboard dev` diff --git a/apps/dashboard/src/lib/name-generator.ts b/apps/dashboard/src/lib/name-generator.ts new file mode 100644 index 0000000..19c1a49 --- /dev/null +++ b/apps/dashboard/src/lib/name-generator.ts @@ -0,0 +1,8 @@ +const choices = [ + ["kitten", "cat", "neko", "puppy", "dog", "doggy"], + ["box", "stack", "rack", "server", "node"], +]; + +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/lib/server/name-generator.ts b/apps/dashboard/src/lib/server/name-generator.ts new file mode 100644 index 0000000..19c1a49 --- /dev/null +++ b/apps/dashboard/src/lib/server/name-generator.ts @@ -0,0 +1,8 @@ +const choices = [ + ["kitten", "cat", "neko", "puppy", "dog", "doggy"], + ["box", "stack", "rack", "server", "node"], +]; + +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..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 @@ -26,8 +26,10 @@ EyeOff, HardDriveUpload, Plus, - X + X, + Dices } from '@lucide/svelte'; + import { generateServerName } from '$lib/name-generator'; type PageData = { currentProject?: { id: string } | null; @@ -123,7 +125,10 @@ const ipv6Available = $derived(Boolean(data.ipamAvailability?.ipv6.available)); const bothNetworksAvailable = $derived(ipv4Available && ipv6Available); - let serverName = $state(''); + let serverName = $state(generateServerName()); + function regenerateServerName() { + serverName = generateServerName(); + } let selectedImageId = $state(null); let selectedImageVersion = $state(null); let selectedPlanId = $state(null); @@ -417,12 +422,15 @@ >Name -
+
+