# Despliegue — Portal Minería

> **Importante:** esta web es una app **Next.js 16 + React 19 + Prisma** con **renderizado en
> servidor** (SSR) y base de datos. **No es** un bundle estático como el sitio actual de
> `mercadominero.terraworks.cl`. Necesita un **servidor con Node.js 20+** corriendo (no se puede subir
> como HTML estático a un hosting tradicional).

## Requisitos
- Node.js **20 o superior** y npm.
- Un host que ejecute procesos Node: **Vercel** (lo más simple), Railway, Render, Fly.io, o un VPS propio.

## Puesta en marcha local (probar antes de subir)
```bash
npm install
npx prisma generate          # genera el cliente de Prisma
npx prisma migrate deploy    # crea/actualiza la base SQLite (prisma/dev.db)
npm run db:seed              # carga los 13 activos de ejemplo (opcional)
npm run build
npm start                    # queda sirviendo en http://localhost:3000
```
Para desarrollo con recarga en caliente: `npm run dev`.

## Variables de entorno (`.env`)
```
DATABASE_URL="file:./prisma/dev.db"     # SQLite local (incluido)
```
- **SQLite** funciona para empezar (la base va en `prisma/dev.db`). Requiere disco persistente en el host.
- Para **producción seria** usa **PostgreSQL**: cambia en `prisma/schema.prisma`
  `provider = "postgresql"`, pon `DATABASE_URL` con la cadena de Postgres y corre
  `npx prisma migrate deploy`.

## Opción A — Vercel (recomendada, más rápida)
1. Sube este proyecto a un repositorio (GitHub/GitLab).
2. En Vercel: *New Project* → importa el repo. Framework: **Next.js** (autodetectado).
3. Define `DATABASE_URL` en *Environment Variables* (usa **Postgres**, p. ej. Vercel Postgres o Neon —
   SQLite no persiste en Vercel).
4. Deploy. Luego en *Settings → Domains* agrega **mercadominero.terraworks.cl** y apunta el DNS
   (registro CNAME) según indique Vercel.

## Opción B — VPS propio (Node + Nginx)
```bash
npm install && npx prisma generate && npx prisma migrate deploy && npm run build
npm start                    # escucha en el puerto 3000
```
Mantén el proceso vivo con **pm2** o un servicio systemd, y pon **Nginx** como reverse proxy
de `mercadominero.terraworks.cl` → `http://127.0.0.1:3000` (con certificado HTTPS, p. ej. Let's Encrypt).

## Notas
- Usuario de prueba en la base incluida: `tomas@terraworks.cl` / `clave12345`.
- Las imágenes de los activos están en `public/listings/` (fotos de Wikimedia Commons; ver
  `public/listings/ATTRIBUTIONS.md` para licencias antes de uso comercial).
- Cambia cualquier secreto/credencial antes de producción.
- El convención `middleware.ts` muestra un aviso de deprecación de Next 16 (no afecta el funcionamiento).
