Scaffold SvelteKit app with Postgres + deploy to Tailscale funnel #2

Merged
forgejo_admin merged 1 commit from 1-scaffold-sveltekit-app-with-postgres-dep into main 2026-03-13 19:39:27 +00:00

Summary

SvelteKit 5 app scaffolded with node adapter, connecting to the basketball-api Postgres database via DATABASE_URL env var. Includes a branded landing page with live player stats, placeholder admin/coach routes, multi-stage Dockerfile, Kubernetes manifests with Tailscale funnel ingress, and Woodpecker CI pipeline for Harbor image builds.

Changes

  • package.json / package-lock.json: SvelteKit 5 with node adapter, pg dependency
  • svelte.config.js / vite.config.js / jsconfig.json: SvelteKit build config with node adapter
  • src/app.html: HTML shell with viewport meta for mobile
  • src/lib/server/db.js: pg Pool using DATABASE_URL from env (no hardcoded secrets)
  • src/routes/+layout.svelte: Global dark theme styles, Westside brand red
  • src/routes/+page.server.js: Server load function querying player counts with graceful DB failure handling
  • src/routes/+page.svelte: Branded landing page with stat cards and nav links
  • src/routes/admin/+page.svelte: Placeholder admin page
  • src/routes/coach/+page.svelte: Placeholder coach page
  • Dockerfile: Multi-stage Node 20 Alpine build
  • k8s/deployment.yaml: Deployment in westsidekingsandqueens namespace, DATABASE_URL from k8s secret
  • k8s/service.yaml: ClusterIP service on port 3000
  • k8s/ingress.yaml: Tailscale funnel ingress
  • .woodpecker.yaml: CI pipeline building and pushing to Harbor
  • .gitignore: Standard SvelteKit ignores

Test Plan

  • npm install && npm run build succeeds locally
  • npm run dev starts dev server, landing page renders at localhost:5173
  • Docker build succeeds: docker build -t westside-app .
  • k8s manifests apply cleanly to westsidekingsandqueens namespace
  • No secrets or passwords in committed files

Review Checklist

  • No secrets committed
  • No unnecessary file changes
  • Commit messages are descriptive
  • Closes #1 -- Phase 6a scaffold
  • plan-2026-03-08-tryout-prep -- Phase 6a
## Summary SvelteKit 5 app scaffolded with node adapter, connecting to the basketball-api Postgres database via DATABASE_URL env var. Includes a branded landing page with live player stats, placeholder admin/coach routes, multi-stage Dockerfile, Kubernetes manifests with Tailscale funnel ingress, and Woodpecker CI pipeline for Harbor image builds. ## Changes - `package.json` / `package-lock.json`: SvelteKit 5 with node adapter, pg dependency - `svelte.config.js` / `vite.config.js` / `jsconfig.json`: SvelteKit build config with node adapter - `src/app.html`: HTML shell with viewport meta for mobile - `src/lib/server/db.js`: pg Pool using DATABASE_URL from env (no hardcoded secrets) - `src/routes/+layout.svelte`: Global dark theme styles, Westside brand red - `src/routes/+page.server.js`: Server load function querying player counts with graceful DB failure handling - `src/routes/+page.svelte`: Branded landing page with stat cards and nav links - `src/routes/admin/+page.svelte`: Placeholder admin page - `src/routes/coach/+page.svelte`: Placeholder coach page - `Dockerfile`: Multi-stage Node 20 Alpine build - `k8s/deployment.yaml`: Deployment in westsidekingsandqueens namespace, DATABASE_URL from k8s secret - `k8s/service.yaml`: ClusterIP service on port 3000 - `k8s/ingress.yaml`: Tailscale funnel ingress - `.woodpecker.yaml`: CI pipeline building and pushing to Harbor - `.gitignore`: Standard SvelteKit ignores ## Test Plan - [ ] `npm install && npm run build` succeeds locally - [ ] `npm run dev` starts dev server, landing page renders at localhost:5173 - [ ] Docker build succeeds: `docker build -t westside-app .` - [ ] k8s manifests apply cleanly to westsidekingsandqueens namespace - [ ] No secrets or passwords in committed files ## Review Checklist - [ ] No secrets committed - [ ] No unnecessary file changes - [ ] Commit messages are descriptive ## Related - Closes #1 -- Phase 6a scaffold - `plan-2026-03-08-tryout-prep` -- Phase 6a
SvelteKit 5 app with node adapter connecting to basketball-api Postgres
via DATABASE_URL env var. Includes branded landing page with player stats,
placeholder admin/coach routes, multi-stage Dockerfile, k8s deployment
with Tailscale funnel ingress, and Woodpecker CI pipeline for Harbor.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
forgejo_admin deleted branch 1-scaffold-sveltekit-app-with-postgres-dep 2026-03-13 19:39:28 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo_admin/westside-landing!2
No description provided.