FTL Trace está en producción: el MVP (Hito 5) fue cerrado y firmado, la planta registra los 9 checkpoints de trazabilidad y el piloto Habitat ya publicó 5 reportes PEF validados (11,322 prendas). Hoy el sistema —7 componentes de software y su infraestructura— opera sin un servicio formal de mantenimiento: no hay tiempos de respuesta comprometidos ante incidentes ni responsables de la operación diaria. Con el horizonte EU ESPR junio 2027, la continuidad operativa del sistema es una condición del proyecto, no un extra.
Un servicio mensual integral con 98 horas de servicio incluidas: operación de infraestructura (Railway, VPS, almacenamiento, dominios, cuentas de usuarios), soporte de primera línea a los usuarios de planta y oficina, mantenimiento correctivo y bolsa evolutiva AI-assisted (28 h efectivas con Claude Code ≈ 140 h de desarrollo clásico), guardia de urgencias con reparador on-call para caídas de producción, y gestión técnica mensual con reporte de servicio.
USD 2,804.57 por mes más un fee de inicio único de USD 1,470.88 para la puesta en marcha (transferencia de accesos, instalación del monitoreo, contratación y capacitación de los encargados). Desglose transparente ítem por ítem: infraestructura a costo + 10% de gestión, servicios por rol y dedicación, y un resguardo operativo del 10% declarado como línea visible. Sin permanencia mínima: el servicio se renueva mes a mes.
| Componente | Tecnología | Función |
|---|---|---|
| Backend API | FastAPI · Python 3.12 | Núcleo del sistema: ~235 rutas — trazabilidad CP1–CP9, motor PEF, workflow DPP, residuos (EU WFD), EPCIS 2.0, sensores IoT |
| Dashboard Trento | Astro 5 + React 18 | 76 páginas: trazabilidad, reportes PEF/DPP, carga de datos, administración |
| App de planta (checkpoint-web) | React / Vite | Registro operativo de los 9 checkpoints en línea de producción |
| Portal de proveedores | Astro | Carga de datos de lavanderías y proveedores externos (QLever, Tintotex) |
| Panel de administración | React / Vite | Gestión interna y herramientas de operación |
| App móvil Android | Java nativo · Jenkins | Escaneo GS1-128 y registro móvil en planta; build y publicación de APK |
| Uploader IoT on-prem | Python · tarea Windows | Ingesta de energía de 7 medidores Schneider iEM3255 vía gateway PAS800L (poll 15 s, heartbeat 5 min) |
| Infraestructura / integración | Descripción |
|---|---|
| Railway | PostgreSQL 15 con SSL mTLS (schemas public, trace-cert, trento) + worker sync-db (cron cada 3 min) |
| VPS de producción | nginx (dominios *.dpp.fintechlab.la), Jenkins, Keycloak, Dolibarr, MongoDB, broker MQTT Mosquitto |
| Google Gemini API | OCR del display de la balanza de planta (gemini-2.5-flash) |
| Integraciones externas | ERP Trento (SQL Server vía túnel SSH), impresora Zebra ZQ521 (ZPL vía MQTT), SMTP transaccional |
Administración de Railway y del VPS de producción, deploys y migraciones de base de datos, certificados TLS, gestión de cuentas de usuarios (Keycloak, Dolibarr, portal de proveedores), túnel SSH al ERP, ejecución y verificación de backups, y revisión de consumo cloud reportada mes a mes.
Primera línea de atención para los usuarios del sistema —equipo Trento, supervisores de planta y brokers—, revisión diaria de la salud del sistema y del uploader IoT en planta, registro y triaje de incidentes, y escalamiento al nivel técnico cuando corresponde.
Corrección de bugs en backend, frontends y app móvil por un desarrollador senior con Claude Code (factor ≈5×): las 12 h efectivas equivalen a ~60 h de desarrollo clásico. Incluye diagnóstico, fix, tests y despliegue del parche.
Mejoras menores y pago de la deuda técnica registrada en el handover: dark mode inconsistente, bug del buscador, validaciones de formularios CP1, filtrado GTIN+talla en reportes. Equivale a ~80 h clásicas. La priorización se acuerda cada mes con el cliente.
Guardia de disponibilidad ante caída de producción (severidad crítica) con canal directo, todos los días de 7:00 a 22:00 (GMT-5). Incluye 4 h/mes de intervención; las horas adicionales de urgencia se facturan a USD 40/h por incidente.
Reunión mensual de priorización con el cliente, reporte de servicio (incidentes, horas consumidas, consumo cloud, estado de la deuda técnica) y coordinación con los equipos externos (Trento, QLever) cuando un incidente cruza sistemas.
| Ítem | Detalle | USD/mes |
|---|---|---|
| Railway Pro — backend + PostgreSQL + sync | Plan Pro + uso estimado (Postgres 307 tablas, 3 schemas, sync cada 3 min, backend + worker) | 44.00 |
| VPS de producción | nginx, Jenkins, Keycloak, Dolibarr, MongoDB, MQTT — tier 8–16 GB RAM, sirve *.dpp.fintechlab.la |
38.50 |
| Cloudflare R2 | Documentos del módulo de residuos (ftl-waste-docs), volumen estimado ≤60 GB |
3.30 |
| Almacenamiento de backups con retención | pg_dump + mongodump + configuración; retención 30 días diaria + 12 meses mensual |
5.50 |
| Google Gemini API | OCR del display de balanza (gemini-2.5-flash), volumen bajo |
3.30 |
| Monitoreo uptime + alertas | Checks cada 60 s sobre backend, dashboard, portal, Keycloak y Dolibarr | 11.00 |
| Dominio y certificados | Dominio fintechlab.la prorrateado; TLS Let's Encrypt sin costo |
3.30 |
| SMTP transaccional | Notificaciones y recuperación de contraseña, volumen bajo | 5.50 |
| Subtotal infraestructura | 114.40 | |
| Rol | h/mes | Alcance | USD/mes |
|---|---|---|---|
| Sysadmin / operación de infraestructura | 20 | Railway, VPS, certificados, deploys, migraciones, backups, cuentas de usuarios, túnel SSH ERP | 409.36 |
| Operador de soporte N1 | 40 | Atención a usuarios, revisión diaria de salud del sistema y del uploader IoT, primera línea de incidentes | 297.92 |
| Dev senior — mantenimiento correctivo AI ×5 | 12 | Bugs en backend, frontends y app móvil (≈60 h de trabajo clásico) | 446.54 |
| Dev senior — bolsa evolutiva AI ×5 | 16 | Deuda técnica del handover y mejoras menores (≈80 h clásicas), priorización mensual | 595.39 |
| Gestión y coordinación técnica | 6 | Priorización mensual, reporte de servicio, coordinación Trento/QLever | 252.00 |
| Reparador de urgencias (on-call) | 4 | Retainer de disponibilidad 7:00–22:00 todos los días + 4 h de intervención incluidas | 434.00 |
| Subtotal servicios | 98 | 2,435.21 |
| Subtotal infraestructura + servicios | 2,549.61 |
| Resguardo operativo · 10% — variaciones de consumo cloud y picos de soporte; uso transparentado en el reporte mensual | 254.96 |
| FEE MENSUAL TOTAL (USD) | 2,804.57 |
| Ítem | Rol | h | Detalle | USD |
|---|---|---|---|---|
| Transferencia e inventario de accesos | Sysadmin | 6 | Recepción/alta de cuentas (Railway, Cloudflare, VPS, dominio, Google AI, SMTP, Keycloak), inventario de credenciales en vault del servicio | 122.81 |
| Instalación de monitoreo uptime + alertas | Sysadmin | 8 | Alta de monitores (backend, dashboard, portal, Keycloak, Dolibarr, heartbeat IoT), canales de alerta y política de escalamiento | 163.74 |
| Runbook de operación | Sysadmin | 8 | Procedimientos: backup manual semanal y restauración, deploy, reinicio de servicios, rotación de certificados, escalamiento por severidad | 163.74 |
| Reclutamiento y contratación de encargados | Gestión | 8 | Selección y contratación del operador N1 y confirmación de la guardia on-call; acuerdos de disponibilidad y confidencialidad | 336.00 |
| Capacitación técnica del equipo entrante | Dev senior | 10 | Transferencia sobre el sistema (9 checkpoints, EPCIS, PEF/DPP) y los hot spots del handover (GS1-128, CP8 dual-event, sync offline móvil) | 372.12 |
| Onboarding del operador N1 | Operador | 16 | Shadowing con usuarios de planta y oficina, práctica de triaje y registro de incidentes en casos reales | 119.17 |
| Setup del canal de soporte | Operador | 8 | Canal de atención (correo/WhatsApp), plantillas de tickets, registro de incidentes y tablero de seguimiento | 59.58 |
| Subtotal fee de inicio | 64 | 1,337.16 | ||
| Resguardo · 10% | 133.72 | |||
| TOTAL FEE DE INICIO (USD, pago único) | 1,470.88 | |||
| Severidad | Definición | Primera respuesta | Objetivo de resolución | Cobertura |
|---|---|---|---|---|
| Crítica | Producción caída o la planta no puede registrar checkpoints (backend, BD o app de planta fuera de servicio) | ≤ 2 h | ≤ 8 h continuas | On-call directo, todos los días 7:00–22:00 (GMT-5) |
| Alta | Función clave degradada sin workaround (impresión de etiquetas, precargado, sincronización ERP) | ≤ 4 h hábiles | ≤ 2 días hábiles | Horario hábil L–V 9:00–18:00 |
| Media | Bug con workaround disponible; no bloquea la operación | ≤ 1 día hábil | ≤ 10 días hábiles (ciclo correctivo) | Horario hábil L–V 9:00–18:00 |
| Baja | Consultas, dudas de uso, mejoras menores | ≤ 2 días hábiles | Planificada en la bolsa evolutiva | Horario hábil L–V 9:00–18:00 |
| # | Riesgo | Impacto | Mitigación |
|---|---|---|---|
| R1 | El sistema hoy no tiene backups automatizados | Alto — ante un fallo de BD o del VPS, la pérdida de datos y el downtime pueden ser significativos | Aprobar la Fase 0 de hardening (cotización separada). Interín: backups manuales semanales + monitoreo uptime con alertas instalado en el fee de inicio |
| R2 | Bus factor ≤ 1 en zonas críticas (GS1/EPCIS, motor PEF, sync offline móvil, migraciones) | Medio — la resolución de incidentes complejos depende de personas específicas | Onboarding del equipo de mantenimiento sobre los hot spots documentados en el handover + documentación viva (dentro de gestión técnica) |
| R3 | Configuración de producción (nginx, TLS, Jenkins) no versionada | Medio — recuperación lenta ante fallo del VPS | Versionar la configuración durante las primeras semanas de operación, dentro de las horas de sysadmin incluidas |
| R4 | Dependencias de terceros (ERP Trento, Railway, Gemini, Cloudflare) | Medio — un incidente del tercero afecta al sistema sin control directo de FTL | Monitoreo de dependencias, canal de escalamiento por proveedor y comunicación temprana al cliente |
| R5 | Variación del consumo cloud (crecimiento de datos, más OPs en piloto) | Bajo — el costo de infraestructura puede crecer con el uso | El resguardo operativo del 10% absorbe variaciones menores; consumo reportado mes a mes |