Data administration tool for the basketball-api Postgres database. SvelteKit (adapter-node) + Drizzle ORM + Keycloak cookie SSR. Public funnel, admin-role gated.
  • TypeScript 80.1%
  • JavaScript 10.8%
  • Svelte 6.2%
  • Dockerfile 1.7%
  • CSS 0.8%
  • Other 0.4%
Find a file
forgejo_admin 63e708dcef
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
fix(auth): accept azp claim for client identity (closes #26) (#27)
2026-05-03 21:40:30 +00:00
scripts fix(auth): accept azp claim for client identity (closes #26) (#27) 2026-05-03 21:40:30 +00:00
src fix(auth): accept azp claim for client identity (closes #26) (#27) 2026-05-03 21:40:30 +00:00
static scaffold: SvelteKit adapter-node + TypeScript + ESLint (#9) 2026-04-26 00:51:42 +00:00
.dockerignore docker: multi-stage Dockerfile for adapter-node runtime (#10) 2026-04-28 04:35:32 +00:00
.gitignore scaffold: SvelteKit adapter-node + TypeScript + ESLint (#9) 2026-04-26 00:51:42 +00:00
.prettierignore scaffold: SvelteKit adapter-node + TypeScript + ESLint (#9) 2026-04-26 00:51:42 +00:00
.prettierrc scaffold: SvelteKit adapter-node + TypeScript + ESLint (#9) 2026-04-26 00:51:42 +00:00
.woodpecker.yaml ci: assert on adapter-node artifacts in validate smoke check (#13) 2026-04-30 12:26:39 +00:00
Dockerfile docker: multi-stage Dockerfile for adapter-node runtime (#10) 2026-04-28 04:35:32 +00:00
eslint.config.js scaffold: SvelteKit adapter-node + TypeScript + ESLint (#9) 2026-04-26 00:51:42 +00:00
package-lock.json feat(auth): keycloak.ts SSR auth lib + vitest setup (#18) 2026-05-03 15:53:52 +00:00
package.json feat(auth): keycloak.ts SSR auth lib + vitest setup (#18) 2026-05-03 15:53:52 +00:00
README.md scaffold: SvelteKit adapter-node + TypeScript + ESLint (#9) 2026-04-26 00:51:42 +00:00
svelte.config.js scaffold: SvelteKit adapter-node + TypeScript + ESLint (#9) 2026-04-26 00:51:42 +00:00
tsconfig.json scaffold: SvelteKit adapter-node + TypeScript + ESLint (#9) 2026-04-26 00:51:42 +00:00
vite.config.ts scaffold: SvelteKit adapter-node + TypeScript + ESLint (#9) 2026-04-26 00:51:42 +00:00
vitest.config.ts feat(auth): keycloak.ts SSR auth lib + vitest setup (#18) 2026-05-03 15:53:52 +00:00

westside-admin

SvelteKit (adapter-node) admin console over the basketball-api Postgres DB. Gated by Keycloak admin role.

See project-westside-admin in pal-e-docs for the full architecture, story map, and roadmap.

Develop

npm install
npm run dev      # http://localhost:5173

Build & run

npm run build
npm start        # node build/index.js  - http://localhost:3000

Health

GET /health returns 200 {"status":"ok"} for the Docker HEALTHCHECK and k8s probes.

Stack

  • SvelteKit 2 + Svelte 5 (runes)
  • TypeScript (strict)
  • @sveltejs/adapter-node (SSR; Drizzle queries run server-side)
  • ESLint + Prettier
  • No Tailwind (per feedback_no_tailwind -- pure CSS vars)

Roadmap

This repo is being built ticket-by-ticket. See forgejo_admin/westside-admin issues:

  • #6 -- Scaffold (this PR)
  • #1 -- Drizzle ORM
  • #2 -- Keycloak auth (hooks.server.ts)
  • #3 -- Tenant helper
  • #4 -- Players list
  • #5 -- Players edit
  • #7 -- Dockerfile
  • #8 -- Woodpecker CI