mandaloreandClaude Sonnet 5 e4b314f418 Add missing package-lock.json for events site
npm ci requires a lockfile; I have no Node available in this sandbox
to generate one, so adapted scouting's (identical devDependencies
across every site in this repo) and renamed the two embedded package
names to match.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SBzcNkW7JcYipnAX6HfgmK
2026-09-04 15:56:20 -05:00

gateway-gamers.net

Monorepo for the *.gateway-gamers.net static sites. Each site is an independent Vite + Tailwind v4 + daisyUI project, deployed to its own subdomain, but they share a header shell, footer, and hero-carousel images so a logo/photo swap doesn't need to happen four times.

Layout

shared/
  header.template.html   # full header markup, nav swapped in at build time
  footer.html             # byte-identical across every site
  images/                 # logo + carousel photos, one copy
scripts/
  render-header.mjs        # shared/header.template.html + sites/<site>/nav.html -> sites/<site>/public/header.html
sites/
  40k-rankings/
  aos-rankings/
  kingmaker/
  scouting/

Each sites/<name>/ is a full Vite project (own package.json, vite.config.js, src/, index.html). Two things are not duplicated per site:

  • public/footer.html and public/images are symlinks into ../../../shared/.
  • public/header.html is generated (gitignored) from shared/header.template.html plus that site's own nav.html (just its <li> nav entries) — run automatically via the predev/prebuild npm scripts, so npm run dev / npm run build always regenerate it fresh. Nothing else about the header (carousel, logo, theme toggle) varies per site.

To add a new site's nav, edit sites/<name>/nav.html. To change the shared photos, logo, footer copy, or header markup/structure, edit under shared/ once.

Commands (per site)

cd sites/<name>
npm install
npm run dev       # http://localhost:5173, regenerates header.html first
npm run build     # -> dist/
npm run preview

Deploy

.gitlab-ci.yml at the repo root builds/deploys each site independently (path-scoped via rules: changes:), plus a deploy:shared job that syncs shared/images/ and shared/footer.html to /var/www/domains/gateway-gamers.net/shared/ on the webserver — the box the GitLab Runner executes on. Every site's nginx server block points /images/ and /footer.html at that shared directory via alias, so the webserver only ever holds one copy of the ~25MB of images. See each sites/<name>/<name>.gateway-gamers.net.conf for the live nginx reference config (applied manually on the box — CI doesn't touch nginx).

S
Description
No description provided
Readme
27 MiB
Languages
JavaScript 57.9%
HTML 34.8%
Python 6.4%
CSS 0.9%