Read-only mirror of the client's existing system as it stood before our work began. Taken from matthijsexpand@149.210.159.152 (TransIP VPS, Lelystad NL) with the client's written permission. Contents: - home-weddingcaketopper/ Next.js app, proxy.py, supabase schema - var-www/ static webroots for all three domains - etc-nginx/ vhost configs (previously unversioned, server-only) Excluded: node_modules (704M, regenerable), .next (17M, regenerable), and env file contents (present on local disk, gitignored — see README). Not our IP. Not covered by the proposal's assignment clause.
1.1 KiB
1.1 KiB
WeddingCakeTopper.nl MVP
Next.js MVP met:
- Bestelpagina
- Upload 3–6 foto's
- Supabase database + storage
- Adyen Sessions route
- OpenAI AI-preview route
- Simpele adminpagina
Installatie lokaal
npm install
cp .env.example .env.local
npm run dev
Supabase
- Maak een project aan.
- Draai
supabase/schema.sqlin SQL editor. - Maak bucket
order-uploadsaan. - Voor MVP: public bucket. Voor productie: private bucket + signed URLs.
Adyen
Vul in .env.local:
- ADYEN_API_KEY
- ADYEN_MERCHANT_ACCOUNT
- ADYEN_CLIENT_KEY
- ADYEN_ENVIRONMENT=test
Webhook URL:
https://weddingcaketopper.nl/api/payments/webhook
OpenAI
Vul OPENAI_API_KEY in.
Deploy TransIP VPS
sudo apt update
sudo apt install -y nodejs npm nginx certbot python3-certbot-nginx
npm install
npm run build
npm install -g pm2
pm2 start npm --name weddingcaketopper -- start
pm2 save
Nginx reverse proxy naar http://127.0.0.1:3000.
Belangrijk
Deze MVP is een startpunt. Voor live productie nog toevoegen:
- Echte admin login
- Adyen webhook HMAC-validatie
- Private Supabase uploads
- Email notificaties
- Rate limiting
- AVG/privacytekst