studio-os
Studio OS es una plataforma auto-alojada para gestionar estudios boutique como yoga o pilates. Permite reservas públicas, packs de clases y membresías utilizando tu propia cuenta de Stripe sin comisiones extra. Funciona con Node.js y SQLite en un único contenedor Docker, ofreciendo una alternativa l
Ficha actualizada 27 sept 2026, 9:05 · upstream 27 sept 2026, 8:52 · release v0.4.0
Qué es studio-os
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
Studio OS es una solución auto-alojada diseñada para estudios boutique como yoga, pilates o gimnasios pequeños. Su característica distintiva es que procesa los pagos directamente en tu cuenta de Stripe, eliminando márgenes y tarifas por reserva típicas del software SaaS. La aplicación utiliza Node.js con Express y SQLite en un único archivo, permitiendo despliegues simples en contenedores Docker o servidores bare-metal sin necesidad de pasos de compilación frontend complejos.
Ofrece gestión completa de reservas públicas con captura de exenciones de responsabilidad (waivers), sistemas de créditos para packs de clases y membresías recurrentes. Incluye herramientas administrativas para gestionar horarios, listas de espera automáticas, reportes de ingresos y la importación idempotente de datos desde Mindbody mediante CSV. La interfaz está construida con EJS, HTMX y Pico.css, garantizando que funcione incluso sin conexión a internet una vez cargada.
La arquitectura prioriza la simplicidad operativa: todo el código frontend está empaquetado (vendored), no requiere CDN ni build steps, y la base de datos es un único archivo SQLite. Esto facilita copias de seguridad automáticas mediante cron o herramientas estándar de sistema operativo.
- Gestión de reservas públicas para estudios boutique (yoga, pilates) sin login obligatorio.
- Venta de packs de clases y membresías recurrentes usando cuenta propia de Stripe.
- Migración de datos desde Mindbody mediante importación CSV idempotente.
- Gestión de horarios automáticos con listas de espera FIFO y promoción automática.
- Portal de instructores con acceso restringido a su propio roster y check-in.
- Despliegue auto-alojado en VPS económicos o máquinas locales sin dependencias complejas.
- Pagos en cuenta propia de Stripe: cero márgenes ni tarifas por transacción.
- Arquitectura monolítica simple: Node.js + SQLite en un solo archivo, fácil backup.
- Sin frontend build: EJS y HTMX vendidos, funciona offline tras carga inicial.
- Importación segura de Mindbody: lógica idempotente basada en email para evitar duplicados.
- Seguridad básica integrada: CSRF tokens, rate limiting por IP y cookies seguras.
- Despliegue flexible: Docker Compose o Node nativo sin configuración compleja.
- Versión v0.1: soporta un solo estudio, ubicación y zona horaria simultáneamente.
- Sin autenticación de dos factores (2FA) en accesos de personal o administradores.
- Rate limiting en memoria: no es compartido entre múltiples instancias del servidor.
- HTTPS gestionado externamente: el proxy inverso debe manejar terminación TLS.
- Interfaz y reportes en inglés; sin gráficos visuales, solo tablas CSV.
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.
Requiere Node.js 22+ o Docker Engine 28.x con base node:22-slim. Ejecutar detrás de un proxy inverso (nginx/Caddy) configurando TRUST_PROXY=1 para cookies seguras y correos válidos. Copiar .env.example a .env para definir puertos, SMTP y claves Stripe. Base de datos persiste en volumen studio-data o archivo data/studio.db.
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.







