openreport
Open Report es una plataforma de reporting y visualización de datos autoalojada, open source bajo AGPL v3.
Ficha actualizada 23 sept 2026, 8:02 · upstream 23 sept 2026, 7:46 · release v0.2.0
Qué es openreport
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
Open Report es una plataforma open source autoalojada para reporting y visualización de datos. Superset es demasiado complejo, Metabase tiene limitaciones y Power BI no es open source. Open Report combina la potencia de Power BI con el modelo semántico de Looker Studio, pero bajo licencia AGPL v3 y autoalojado. Permite construir dashboards interactivos mediante un editor visual drag-and-drop sobre un canvas, donde cada widget se define en una propiedad panel. El sistema compila consultas SQL para su dialect específico (PostgreSQL, MySQL, ClickHouse, BigQuery, Snowflake, DuckDB) contra la base de datos destino. Todo el procesamiento ocurre localmente sin exportar datos a ningún servidor externo.
La arquitectura distingue entre la capa frontend (React 19 + Vite en Node.js), la capa backend (Express con rutas REST y middleware de autenticación) y la capa de metadatos (SQLite mejorado para persistencia de modelos semánticos). La seguridad se basa en tokens scoped por usuario, sesiones gestionadas mediante Passport.js local, y claves secretas que cifran las contraseñas de la base de datos. El sistema soporta importación desde CSV, Excel (.xlsx), Parquet, JSON, TSV y SQLite (.db) con DuckDB como motor de import/export.
- Monitorización de rendimiento en tiempo real para equipos de desarrollo
- Reportes ejecutivos automáticos basados en métricas pre-agregadas
- Dashboards de negocio que se actualizan sin intervención manual
- Visualización de datos complejos con múltiples dimensiones y medidas
- Análisis de ventas, tráfico web o rendimiento de servidores
- Reportes personalizados para stakeholders no técnicos
- Modelo semántico que permite definir relaciones entre tablas (joins) una sola vez y reutilizarlos en cualquier reporte
- Seguridad por nivel de fila (Row-Level Security) mediante metadatos definidos en el modelo
- Exportación a PDF, PNG y Excel con formato nativo de cada plataforma objetivo
- Pre-agregación cache que reduce consultas a la base de datos para reportes frecuentes
- Soporte para múltiples dialectos SQL (PostgreSQL, MySQL, ClickHouse, BigQuery, Snowflake, DuckDB)
- API REST pública para scripts programados y tokens scoped por usuario
- No soporta múltiples tablas de hechos en un solo widget; la combinación de facturas infla los resultados debido al fan-out de joins
- El cache pre-agregado no cubre todas las medidas, especialmente aquellas con operaciones no acumulativas o funciones SQL complejas que se ejecutan contra la fuente original
- La construcción de reportes es un workflow basado en escritorio; la edición en móviles no está diseñada para ello
- Los resultados grandes pueden afectar el rendimiento del frontend debido a la visualización client-side
- No incluye herramientas de migración de esquema (schema migration tool)
- Las actualizaciones se ejecutan idempotentemente mediante ALTERs, lo que puede causar inconsistencias en bases de datos con transacciones abiertas
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Para producción, instala el contenedor Docker con docker-compose y configura variables de entorno. Usa un reverse proxy (Caddy, Traefik o Nginx Proxy Manager) para exponer la API a HTTPS; el proxy debe enviar el header X-Forwarded-Proto para que el cookie de sesión tenga el flag Secure. Si necesitas acceso público sin proxy, usa el perfil https del docker-compose.yml con certificado auto-generado por Let's Encrypt. Para entornos sin Docker, instala Node 22 en un entorno local (sin sudo), ejecuta npm run install:all y luego npm run dev para iniciar el servidor. El frontend se aloja en http://localhost:5173 y la API en http://localhost:3001.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.