Skip to content

Latest commit

 

History

History
67 lines (50 loc) · 3.23 KB

File metadata and controls

67 lines (50 loc) · 3.23 KB

Finward

App de finanzas personales B2C. Clean Architecture, Supabase, Ledger de doble partida.

Estructura

finward/
├── backend/    # API REST con Prisma 7, Supabase Auth, Ledger
└── frontend/   # React + Vite, proxy /api → backend:4000

Inicio rápido (desarrollo local)

./dev.sh setup       # 1. Primera vez: .env, npm install, prisma generate
# Editar backend/.env con Supabase (SUPABASE_*, DATABASE_URL, DIRECT_URL). Si el dominio no resuelve en local: USE_DIRECT_URL=true
./dev.sh db:push     # 2. Aplicar schema
./dev.sh setup-dev   # 3. Usuario demo + seed + RLS
./dev.sh start       # 4. Backend (4000) + Frontend (3000) con logs prefijados

Si ves Cannot find module '.prisma/client/default': ejecuta ./dev.sh generate antes de ./dev.sh start.

Credenciales demo: demo@finward.dev / DemoFinward123!

Ver backend/docs/DEVELOPMENT.md para el flujo completo.

Docker (self-hosted)

cp backend/.env.example backend/.env   # Editar con Supabase, DATABASE_URL, etc.
cp .env.docker.example .env            # VITE_SUPABASE_* requeridos para login
./deploy.sh start

App en http://localhost. Ver ./deploy.sh (sin args muestra ayuda): start, stop, update, db:push, logs, etc.

Docs

rls-policies.sql

Políticas de Row Level Security (RLS) para Supabase Postgres. RLS filtra filas por usuario a nivel BD. Ejecutar en Supabase SQL Editor después de prisma db push. Ver backend/docs/RLS.md para más detalles.

Prisma

  • Inicial: prisma db push (usa DIRECT_URL)
  • Tailscale: DIRECT_URL con 192.168.100.109:5433 (evita conflicto pooler en 5432)
  • Desarrollo local: Si el dominio (DATABASE_URL) no resuelve, añade USE_DIRECT_URL=true en .env para usar DIRECT_URL (IP Tailscale) en la app