Developer Portfolio for Duneamsk
Find a file
Dunemask 88d98166c8
Some checks failed
S3 Repo Backup / s3-repo-backup (push) Successful in 15s
Deploy Edge / deploy-edge (push) Failing after 3h11m55s
[FIX] Keep the website out of the Helm release secret
The chart sits at the repo root, so helm packages the whole tree into the
release Secret, which Kubernetes caps at 3MB. .helmignore still named src/,
public/ and lib/ — root-level paths before the workspace split — so nothing
matched and 6.4MB of site and resume assets went in with it:

  UPGRADE FAILED: create: failed to create: Request entity too large

The chart needs Chart.yaml, values.yaml and templates/. Everything else is the
website, and the image already carries it. Packaged chart goes from 2,389,381
bytes to 4,159, still renders four objects, and helm lint passes.

Also excludes .git without a trailing slash: in a worktree that is a file
pointing at the real gitdir, so ".git/" never matched it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 22:11:49 -06:00
.gitea/workflows [CHORE] Trim the tool prefetch and show where Garden keeps them 2026-08-03 22:02:32 -06:00
docs [FEATURE] Precompress with brotli, and point CI at the action that exists 2026-08-03 18:40:55 -06:00
nginx [FEATURE] Precompress with brotli, and point CI at the action that exists 2026-08-03 18:40:55 -06:00
packages [FEATURE] Publish resume edition 2026-08-03 2026-08-03 18:54:26 -06:00
templates Helm, Actions, Dev updates, and much more! (#4) 2023-08-18 17:43:33 +00:00
.dockerignore [CHORE] Split into bun workspaces, fold prerender into vite build 2026-08-02 22:17:05 -06:00
.gardenignore [FIX] Keep the resume builds out of Garden's context, and pin IPv4 first 2026-08-03 21:57:33 -06:00
.gitignore [FIX] Apply review findings: Escape layering, focus theft, dead code, docs 2026-08-03 14:17:59 -06:00
.helmignore [FIX] Keep the website out of the Helm release secret 2026-08-03 22:11:49 -06:00
biome.jsonc [FEATURE] Port every component off MUI onto Tailwind and Ark UI 2026-08-03 11:50:18 -06:00
bun.lock [FEATURE] Replace react-router with an in-house router 2026-08-03 15:57:44 -06:00
Chart.yaml Helm, Actions, Dev updates, and much more! (#4) 2023-08-18 17:43:33 +00:00
Dockerfile [FEATURE] Precompress with brotli, and point CI at the action that exists 2026-08-03 18:40:55 -06:00
package.json [CHORE] Upgrade to React 19, Vite 8, TypeScript 7 2026-08-03 15:30:57 -06:00
README.md [FIX] Apply review findings: Escape layering, focus theft, dead code, docs 2026-08-03 14:17:59 -06:00
tsconfig.base.json [CHORE] Convert to TypeScript, split pages from sections 2026-08-03 06:36:43 -06:00
values.yaml Helm, Actions, Dev updates, and much more! (#4) 2023-08-18 17:43:33 +00:00

Nile

Nile is a modern digital portfolio for Dunemask — the site at dunemask.net plus the templated résumé it publishes.

Layout

Bun workspaces (packages/*):

Path What
packages/site @nile/site — the React/Vite site. vite build also prerenders every route
packages/resume @nile/resume — the résumé template, its build and its publish step
nginx/ nginx config for the runtime image
templates/ Helm chart templates (Chart.yaml, values.yaml at root)
docs/ seven agent docs — see below

Docs

Written for agents, not for browsing. rendering.md is the mandatory one: conventions.md and architecture.md both defer to it for anything in the render path.

File Read it before
docs/rendering.md anything in the render path — prerender, hydration, the brand intro, serving, output-identity checks
docs/architecture.md changing the workspace shape, routes, the build, or a reproducibility pin
docs/conventions.md writing any component — Tailwind/Ark rules, the palette, biome, data-not-components
docs/file-map.md looking for where something lives
docs/glossary.md a term in the other docs that reads like a feature flag (delta, preflight, the sheet)
docs/resume.md touching the résumé package from the site side; deep reference is packages/resume/docs/
docs/audit.md proposing a change that alters rendered output — the open decision queue lives there

Commands

Run from the repo root; bun, not node.

bun install
bun run dev            # vite dev server, port 5173
bun run build          # one vite build; the prerender runs as a plugin inside it
bun run preview        # vite preview, port 4173
bun run resume         # build the résumé and publish it into the site's public/
bun run resume:build   # résumé build only
bun run resume:check   # slack / wrapped-bullet / misalignment measurements

Deploy

docker build . → multi-stage: oven/bun:1-alpine builds packages/site/dist, nginx:alpine serves it. .gitea/workflows/pr-build.yml builds every PR; deploy-edge.yml runs garden deploy nile --env usw-edge on master.