Commit Graph

6 Commits

Author SHA1 Message Date
vikingowl df5b0563c9 refactor(web): bundle server with esbuild, slim runtime to alpine+node
Post-process adapter-node output into a single self-contained
build/bundle.mjs (614 KB) via esbuild, then ship it on a fresh
alpine:3.21 base with just the node binary copied in. Drops the
node_modules + package manager baggage that comes with node:25-alpine.

- Add esbuild devDep + `bundle` script (scripts/bundle.mjs)
- Dockerfile: drop `deps` stage; final stage is alpine + node binary +
  bundle + static client assets
- Uncompressed image: 177 MB -> 149 MB (-16%)
- Verified: /, /healthz, static assets all respond identically;
  outbound TLS to api.marktvogt.de works via node's built-in CA bundle
2026-04-18 05:05:07 +02:00
vikingowl 2455eda23b fix(ci): install pnpm directly, corepack removed in Node 25 2026-04-01 23:55:56 +02:00
vikingowl ed98563739 refactor: switch package manager from bun to pnpm
- Replace bun with pnpm (v10.33.0) via corepack
- Upgrade all Docker images from node:22/bun to node:25-alpine
- Update CI pipeline, pre-commit hooks, and prettierignore
- Add packageManager field to package.json for version pinning
2026-04-01 23:52:30 +02:00
vikingowl 83264b4b41 fix: enable auth nav, turnstile deployment, country dropdown, profile routes
- Add PUBLIC_TURNSTILE_SITE_KEY as Docker build arg and Woodpecker CI arg
- Uncomment auth nav in Header and MobileNav (login/logout/profile links)
- Move ThemeToggle from header to footer
- Expand country dropdown from DACH-only to all European countries
- Replace profile route redirect with requireAuth guard
- Set cookie secure flag based on environment (secure in prod)
- Add error handling to admin markets page (403 instead of 500)
2026-02-27 14:12:23 +01:00
vikingowl e957419b77 fix(docker): use existing nobody user instead of creating UID 65534 2026-02-22 09:54:35 +01:00
vikingowl 2718321201 feat(deploy): add container build and Helm chart for k8s deployment
- Switch adapter-auto to adapter-node (SSR) for container deployment
- Add multi-stage Dockerfile: Bun build, Node.js 22 runtime, UID 65534
- Add Helm chart (deploy/helm/) with Deployment, Service, HTTPRoute, HPA, PDB, ServiceAccount
- Use HTTPRoute (Gateway API) targeting nginx-gateway, TLS via cert-manager
- Enforce readOnlyRootFilesystem with emptyDir for /tmp
- Set ORIGIN env var for adapter-node CSRF protection
- Add Woodpecker CI: typecheck, docker push (SHA tag), helm upgrade --atomic
2026-02-22 09:32:13 +01:00