openresto
OpenResto es un sistema de reservas para restaurantes, bares y cafeterías que permite gestionar múltiples ubicaciones desde una sola instancia con interfaz móvil y web.
Ficha actualizada 23 sept 2026, 13:38 · upstream 23 sept 2026, 13:25 · release v2.2.0
Qué es openresto
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
OpenResto es un sistema de gestión de reservas para negocios gastronómicos diseñado como solución autocontenida y sin dependencias externas. Permite a los dueños de restaurantes, bares o cafeterías gestionar múltiples establecimientos en una única instancia mediante Docker Compose, con autenticación segura vía JWT y cookies HTTPOnly, y comunicación con clientes a través del propio correo electrónico. La aplicación ofrece una interfaz móvil y web cross-platform para que los usuarios reserven mesas directamente desde su dispositivo, eliminando la necesidad de instalar aplicaciones adicionales o compartir datos personales como el número de teléfono.
El sistema se construye sobre .NET Core 10 con C# y Entity Framework Core, utilizando SQLite como base de datos. La arquitectura está diseñada para ser escalable, permitiendo añadir nuevas ubicaciones sin afectar a las existentes, y cuenta con un pipeline CI/CD que escanea la API ante cada commit mediante OWASP ZAP para detectar vulnerabilidades en el código abierto.
La filosofía detrás del proyecto es simplificar la experiencia de reservas tanto para los usuarios como para los dueños. Los clientes pueden reservar mesas instantáneamente sin revelar su número de teléfono, y pueden guardar sus reservas en su calendario personal. El sistema se construye con principios de seguridad desde el diseño: no requiere servicios externos adicionales, utiliza autenticación basada en tokens JWT, gestiona sesiones mediante cookies HTTPOnly y aplica políticas de acceso granulares a los recursos del backend.
Además, OpenResto incluye funcionalidades avanzadas como categorización de horarios según temporada (lunes, martes, miércoles, jueves, viernes, sábado, domingo), gestión de reservas pausadas para eventos privados o periodos especiales, y un historial de auditoría que registra cada acción modificadora del estado del sistema junto con el usuario, IP, fecha y hora, permitiendo una trazabilidad completa de las operaciones críticas.
- Gestionar múltiples restaurantes en una sola instancia para reducir costos operativos
- Automatizar la gestión de reservas sin necesidad de plataformas SaaS costosas
- Permitir a los dueños gestionar horarios, secciones y branding desde un panel centralizado
- Ofrecer reservas instantáneas con confirmación inmediata al cliente sin intermediarios
- Gestionar reservas pausadas temporalmente para eventos o periodos especiales
- Auditar cada acción modificadora del sistema mediante registro en historial
- Soporta múltiples restaurantes por instancia con gestión independiente de horarios, secciones y branding
- Interfaz móvil y web cross-platform construida desde un solo códigobase usando React Native (Expo Router)
- Autenticación segura mediante JWT Bearer Tokens con HTTPS y cookies HTTPOnly para evitar XSS
- Categorización automática de horarios según temporada basada en datos del sector gastronómico
- Soporte nativo de PWA con iconos dinámicos que se actualizan desde la API sin recargar la página
- API Keys granulares con escopos específicos (bookings, locations, tables, brand, users) para proteger datos sensibles
- No incluye integración nativa de pasarelas como Apple Wallet o Google Pay en el frontend
- La base de datos es SQLite, lo que limita la escalabilidad horizontal y no soporta transacciones ACID a gran escala
- El sistema depende del correo electrónico para la comunicación con clientes, lo que introduce un punto único de fallo
- No incluye funcionalidades avanzadas como reservas por calendario o gestión de citas previas
- La autenticación se basa en tokens JWT y cookies HTTPOnly, sin implementar OAuth2 o SSO
Capturas del proyecto
Imágenes reales detectadas en la documentación del repositorio.
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 recomendada: usar las imágenes pre-builed disponibles en GHCR (linux/amd64 y linux/arm64) para evitar problemas de compatibilidad con arquitecturas raras. Configurar el entorno mediante variables de entorno o appsettings.json, asegurando que JWT_KEY sea al menos 32 caracteres. Para desarrollo local: ejecutar docker compose up desde la raíz del proyecto. El sistema aplica migraciones pendientes automáticamente antes de aceptar tráfico. Se recomienda configurar un firewall para restringir acceso a las APIs y usar HTTPS en producción. Para despliegue multi-tenant, se pueden implementar políticas de acceso granulares sobre los recursos del backend.
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.