Files
pitchfast/README.md

3.2 KiB

WebDev Pipeline

Interner Akquise-Agent fuer lokale Webdesign-Leads. Das MVP startet mit Next.js App Router, TypeScript, Tailwind CSS, shadcn/ui und Platzhalter-Routen fuer Dashboard, Login und oeffentliche Audit-Seiten.

Getting Started

pnpm dev

Open http://localhost:3000 with your browser to see the result.

Scripts

  • pnpm dev starts the local development server.
  • pnpm lint runs ESLint.
  • pnpm build creates a production build.
  • pnpm start starts the production server after a build.

Environment Variables

Copy .env.example to .env.local for local development. Keep real secrets out of the repository and configure production values in Coolify and provider dashboards.

  • App / Coolify: APP_ENV, NEXT_PUBLIC_APP_URL
  • Convex: NEXT_PUBLIC_CONVEX_URL, NEXT_PUBLIC_CONVEX_SITE_URL, CONVEX_DEPLOYMENT
  • Google: GOOGLE_GEOCODING_API_KEY, GOOGLE_PLACES_API_KEY, PAGESPEED_API_KEY
  • OpenRouter: OPENROUTER_API_KEY
  • SMTP / Stalwart: SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD, SMTP_FROM
  • Rybbit: RYBBIT_API_URL, RYBBIT_API_KEY, NEXT_PUBLIC_RYBBIT_SITE_ID
  • Auth: BETTER_AUTH_SECRET
  • TASK-8 enrichment: TASK8_BROWSER_ASSET_URL

Only variables prefixed with NEXT_PUBLIC_ are intended for browser exposure. All API keys, SMTP credentials, and server-only URLs must stay server-side.

Admin Auth Flow

  • /login handles Anmeldung mit dem bestehenden Admin-Account. Registrierung ist nach der Ersteinrichtung serverseitig deaktiviert.
  • Nach erfolgreicher Anmeldung wird auf /dashboard gewechselt.
  • Die Session wird im Layout/Middleware geprüft (/dashboard bleibt geschützt), öffentliche Audit-Routen bleiben weiterhin frei.
  • Für Passwortänderungen ist aktuell kein separater Endpunkt in der UI, daher für MVP bitte über administrativen Wartungsweg vorgehen.

Routes

  • / MVP entry page.
  • /dashboard internal dashboard placeholder.
  • /login admin login placeholder.
  • /audit/[slug] public audit placeholder.

Deployment Notes

Coolify should run pnpm install, pnpm build, and pnpm start. The current font setup uses next/font/google, so production builds need outbound access to Google Fonts unless fonts are later self-hosted.

TASK-8 enrichment uses playwright-core with @sparticuz/chromium-min in Convex. Local npx playwright install is a browser-testing helper only and does not affect the Convex runtime bundle.

TASK-8 requires a browser binary source URL configured on Convex. The preferred variable is:

  • TASK8_BROWSER_ASSET_URL (for example your self-hosted or CDN Chromium bundle URL if you do not rely on package defaults).

For backward compatibility, the action also supports:

  • TASK8_CHROMIUM_EXECUTABLE_URL
  • TASK8_CHROMIUM_EXECUTABLE

If none are set, enrichment deployment/startup will fail with a clear configuration error so no silent fallback is used.

If the URL is missing and no default is available in your environment, the enqueue action will throw a clear deploy/configuration error so enrichment does not silently fall back to a missing binary.

For TASK-8 deployment updates, run Convex restart/deploy after code changes:

  • Local: pnpm exec convex dev
  • Remote: pnpm exec convex deploy