Files
FRASA-CAS/README.md
Consult AS Technology 0fb92364d8 feat: infraestructura de produccion (docker-compose, nginx, backup)
- docker-compose: 4 apps + api + postgres/redis (red interna, sin puertos
  expuestos), healthchecks, restart policies, volumenes
- nginx: client_max_body_size 10m, headers X-Forwarded, webroot certbot,
  certs montados desde /etc/letsencrypt (renovacion sin copiar)
- scripts/backup.sh: sqlite/pg_dump + uploads con retencion 30 dias
- README con instrucciones de deploy y pendientes
2026-08-21 23:42:24 +00:00

2.5 KiB

FRASA Ecosystem

Ecosistema comercial de Frasa Desarrollos S.A.P.I. de C.V.

Componentes

Componente Ruta Descripción
apps/landing / Entrada al ecosistema
apps/cotizador /quote/ Cotizador financiero (4 propuestas, PDF ANEXO A)
apps/alta-clientes /client/ Alta de clientes (wizard, firma digital, PDFs PLD)
apps/cobranza /pay/ Planes de enganche, vencidos, estados de cuenta
api-gateway /api/ Express 5 + Prisma + integración Monday.com

Desarrollo local

Cada app es un proyecto Vite independiente: npm install && npm run dev (o npm run preview tras npm run build). Tests: npx vitest run en cada paquete. El API: cd api-gateway && npm install && npx prisma migrate dev && npm run dev.

Variables de entorno: copiar .env.example a .env y completar (el .env nunca se commitea).

Deploy (servidor Ubuntu + Docker)

git clone https://git.consultoria-as.com/consultoria-as/FRASA-CAS.git /opt/frasa-ecosystem
cd /opt/frasa-ecosystem
cp .env.example .env && nano .env        # completar secretos

# SSL: webroot (funciona con nginx corriendo y renueva sin downtime)
docker compose up -d nginx               # primer arranque SIN ssl: ver nota abajo
certbot certonly --webroot -w /var/www/certbot -d frasadesarrollos.ddns.net

docker compose build && docker compose up -d
docker compose logs -f api
curl https://frasadesarrollos.ddns.net/api/health

Nota primer arranque: mientras no existan los certs, comenta el bloque server 443 de nginx/nginx.conf (o usa un cert autofirmado temporal); después de expedir, restaura y docker compose restart nginx. Renovación: certbot renew --deploy-hook "docker compose -f /opt/frasa-ecosystem/docker-compose.yml restart nginx".

Antes del deploy, cambiar en apps/landing/src/data/modulos.ts las URLs absolutas de preview por rutas relativas (/quote/, /client/, /pay/) y rehacer el build.

Backup: scripts/backup.sh (cron sugerido 17 2 * * *).

Monday.com

Workspace Frasa-CAS. Tableros: Contactos, Desarrollos, Unidades (inventario importado), Leads, Oportunidades, Apartado, Ventas. Los board IDs están en .env.example. Webhook: POST /api/webhooks/monday (responde el challenge de activación).

Pendientes conocidos

  • Migrar Prisma de SQLite a Postgres 16 (dinero a Decimal).
  • Auth JWT, helmet, rate-limit, CORS restringido (hoy: red interna).
  • Self-hostear worker/wasm de tesseract.js (OCR sin internet).
  • Automatizaciones Monday (round-robin, recordatorios 10 días) y cron de cobranza en el API.