From ddcc071554900c248a9cac39cfa86598ad7253f9 Mon Sep 17 00:00:00 2001 From: Frank Meeuwsen Date: Fri, 17 Apr 2026 08:37:31 +0200 Subject: [PATCH] docs: CLAUDE.md bijwerken naar nieuwe Coolify deploy-flow - Workshop details verwijzen naar src/config/workshop.js (single source) - Deployment sectie herschreven: git push triggert Coolify auto-deploy - Forgejo URLs toegevoegd (SSH + HTTPS varianten met verwijzing naar memory) - Static Assets sectie aangepast: base is nu / maar BASE_URL prefix blijft praktijk - Legacy 301-redirect notitie toegevoegd voor frankmeeuwsen.com/workshopclaudecode/ Co-Authored-By: Claude Opus 4.7 (1M context) --- CLAUDE.md | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 790a75a..95295b1 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -6,16 +6,16 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co Sales page for the "Claude Code Workshop" - a hands-on workshop for Dutch entrepreneurs (ZZP/MKB). Built as a static React SPA. All content is in Dutch (nl). -**Workshop details:** Friday April 3, 2026 | 9:00-14:00 | Utrecht | €399 excl. BTW | Max 8 participants +**Workshop details:** zie `src/config/workshop.js` (datum, tijd, locatie, prijs, beschikbare plekken). Niet hardcoden in deze CLAUDE.md - die raakt anders out-of-sync. ## Commands ```bash npm run dev # Vite dev server on port 5173 npm run build # Production build to dist/ -npm run preview # Preview production build +npm run preview # Preview production build (port 4173) npm run lint # ESLint -./preflight.sh # Pre-deploy checks (lint + build + asset path validation) +./preflight.sh # Pre-push checks (lint + build + asset path validation) ``` ## Architecture @@ -58,17 +58,23 @@ Reusable component classes defined in `src/index.css` using `@layer components`: ## Deployment -```bash -./deploy.sh # Preflight + build + deploy naar productie (geen passphrase nodig) -``` +**Auto-deploy via Coolify**: elke `git push` naar `main` triggert Coolify om de Dockerfile te bouwen en de nieuwe nginx-container live te zetten. Geen handmatig deploy-script meer. -Deployment flow: `./preflight.sh` → `npm run build` → rsync naar server → `docker cp` naar WordPress container → chown fix +Workflow: +1. `./preflight.sh` lokaal draaien (lint + build + asset path check) +2. `git push` (naar `origin/main` → Forgejo) +3. Coolify pulled, bouwt `Dockerfile` (multi-stage node→nginx), deployt +4. Verifieer op https://workshopclaudecode.nl/ -- **Server:** Hetzner (37.27.183.46) via SSH alias `coolify-deploy` -- **Container:** `wordpress-d0wko4gskokosssogcw8040g` -- **Pad in container:** `/var/www/html/workshopclaudecode` -- **Live URL:** https://frankmeeuwsen.com/workshopclaudecode/ -- **SSH key:** `~/.ssh/id_rsa_no_pass` (passphrase-loos, specifiek voor automated deploys) +- **Live URL:** https://workshopclaudecode.nl +- **Repo:** `git@git.dutchstack.nl:frankmeeuwsen/workshopclaudecode.git` (SSH push) / `https://forgejo.dutchstack.nl/frankmeeuwsen/workshopclaudecode.git` (HTTPS clone, gebruikt door Coolify) - zie memory `forgejo_urls.md` +- **Hosting:** Coolify static-app container op Hetzner (37.27.183.46) via SSH alias `coolify-deploy` +- **SSL:** Let's Encrypt automatisch via Traefik (Coolify regelt dit) +- **Build artefacten in repo:** `Dockerfile` + `nginx.conf` (SPA fallback via try_files) + `.dockerignore` + +### Legacy redirect + +De oude URL `https://frankmeeuwsen.com/workshopclaudecode/*` 301-redirect naar `https://workshopclaudecode.nl/*` met pad-behoud. Dit zit in een `.htaccess` in de WordPress container (`wordpress-d0wko4gskokosssogcw8040g`, pad `/var/www/html/workshopclaudecode/.htaccess`). Backup van originele htaccess staat als `.htaccess.bak` naast. ## Actief project: Configuratie centraliseren @@ -114,10 +120,9 @@ Zie `PRD.md` voor het volledige bouwplan. Korte samenvatting: Vuistregel: als het kan breken, check het. Als het alleen tekst is, niet. -### Static Assets (BELANGRIJK) +### Static Assets - Statische bestanden (afbeeldingen, etc.) staan in `public/` -- **Altijd** `${import.meta.env.BASE_URL}` als prefix gebruiken bij verwijzingen vanuit code -- Reden: productie draait op `/workshopclaudecode/`, niet op `/` +- Vite `base` staat op `/` (productie draait op het root domein workshopclaudecode.nl) +- **Toch** `${import.meta.env.BASE_URL}` als prefix blijven gebruiken — toekomstbestendig en `./preflight.sh` controleert hierop - Voorbeeld: `` src={`${import.meta.env.BASE_URL}foto.jpg`} `` -- NOOIT: `src="/foto.jpg"` (werkt lokaal maar breekt op productie) -- `./preflight.sh` detecteert hardcoded paden automatisch +- Vermijd: `src="/foto.jpg"` (werkt nu wel maar breekt zodra base ooit weer een sub-pad wordt)