Files
cvfs/apps/webapp
Claude aa419cde0d Prepare repository for public deployment
- Replace ReportLab PDF export with LibreOffice headless for proper DOCX formatting preservation
- Add libreoffice-writer + fonts-liberation to backend Dockerfile
- Proxy public CV PDFs through frontend (/cv/[slug]) instead of redirecting to MinIO storage directly
- Fix docker-compose: route backend/worker to internal MinIO URL (http://cvfs-minio:9000), remove MinIO from public network, parameterize all domain/env vars
- Add storage cleanup (MinIO artifact deletion) when a document is deleted
- Add docker-compose.standalone.yml for self-deployment without Traefik/dokploy
- Update .env.example with comprehensive self-deployment documentation

https://claude.ai/code/session_017HGM9VPptZG52asT5pbL6Y
2026-04-04 10:06:20 +00:00
..
2026-04-02 18:47:14 +02:00
2026-04-02 19:15:47 +02:00
2026-04-02 18:47:14 +02:00
2026-04-02 18:47:14 +02:00
2026-04-02 18:47:14 +02:00
2026-04-02 18:47:14 +02:00
2026-04-02 18:47:14 +02:00
2026-04-02 18:47:14 +02:00
2026-04-02 18:47:14 +02:00
2026-04-02 18:47:14 +02:00

Next.js 15 webapp with React 19, Tailwind CSS 4, Supabase auth, and Turbopack.

Start

bun dev
# or from project root: make run.webapp

Open http://localhost:3000.

Scripts

Command Description
bun dev Dev server with Turbopack
bun build Production build
bun start Serve production build
bun lint Run ESLint
bun typecheck Run tsc --noEmit

Auth

Auth is wired to Supabase via NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY. Set NEXT_PUBLIC_REQUIRE_AUTH=false in .env to disable auth-gating entirely (default for quick prototyping).

Structure

src/
  app/           - Next.js App Router pages
  components/    - Reusable bare-bones components (style last)
  utils/supabase - Supabase client helpers
  libs/          - Shared utilities
  locales/       - i18n strings (add languages as needed)