Adiós a las libretas de papel. La cola avanza más rápido.
FoodDesk es el sistema de comandas open source para fiestas gastronómicas, restaurantes pop-up y cocinas comunitarias. Los camareros toman los pedidos desde el móvil, la cocina marca los platos en una tablet, los tickets se imprimen solos — y al final de la noche las cuentas ya están hechas. Sin nube, sin suscripciones, sin comisiones por pedido.
Cuentas de demo: mario (camarero), cucina (cocina), admin — contraseña fooddesk-demo. Ábrela en dos dispositivos: envía un pedido desde uno y míralo aparecer al instante en el otro.
Pensado para todo el equipo
Cada rol tiene exactamente la pantalla que necesita — y nada más.
🧾 Los camareros
Una PWA nacida para el móvil: tocas los productos, cuentas los cubiertos, añades la nota para cocina, envías. Los pedidos se numeran por jornada y un fallo de red nunca puede crear un duplicado.
🍳 La cocina
Los pedidos nuevos aparecen en el instante en que se envían, sin recargar. Cada plato se marca como listo con un solo toque, y un pedido anulado grita ANULADO en vez de desaparecer en silencio.
🎩 El jefe de sala
Dirige la sala con poderes casi de administrador: el menú, todos los pedidos, anulaciones e informes — pero sin página de ajustes, y del personal solo gestiona a los camareros.
⚙️ El administrador
Construye el menú, gestiona personal y roles, y diseña desde el navegador cada documento impreso — logo, marca de agua, tamaño de papel, rollo térmico de 80mm incluido — en cinco idiomas.
📊 Quien lleva las cuentas
Un panel diario en tiempo real: ingresos, cubiertos, media por cubierto, desglose por producto y categoría — más CSV limpio e informe PDF de una página.
🖨 La impresión
Las comandas de cocina van directas a cualquier impresora CUPS, con reintento automático si la impresora se atasca; sin impresora, toma el relevo el diálogo de impresión del navegador.
Míralo en acción
La demo en vivo carga una noche de fiesta de ejemplo; se reinicia cada 6 horas.
Una noche en la fiesta
Todo corre en una sola máquina económica — un mini-PC o una placa clase Raspberry — en el Wi-Fi del recinto. Los móviles instalan FoodDesk como una app nativa directamente desde el navegador.
La base de datos es un único archivo SQLite, con copia de seguridad automática cada 15 minutos. Un pedido tomado a la 1:30 de la madrugada sigue contando para la jornada en curso — los restaurantes no terminan a medianoche.
Ponlo en marcha
Un comando con Docker. La contraseña de admin generada se imprime en el primer arranque.
docker run -d --name fooddesk -p 3000:3000 -v fooddesk-data:/data \
ghcr.io/adefilippo83/fooddesk:latest
docker logs fooddesk # en el primer arranque imprime la contraseña de admin generada
¿Prefieres un servidor propio? Un script idempotente configura systemd, nginx y backups en Debian. O ábrelo en GitHub Codespaces para una instancia desechable.
Principios que el código hace cumplir de verdad
TypeScript de punta a punta · Fastify · SQLite · React 19 PWA · GPLv3.
- El dinero son céntimos enteros — sin floats en el camino del dinero, y los precios siempre vienen de la base de datos — un cliente manipulado no puede hacerse descuentos.
- La historia es inmutable — las líneas de pedido fotografían nombre y precio; las anulaciones quedan auditadas, nunca borradas. Los recibos de ayer sobreviven al menú de hoy.
- La autorización vive en el servidor — cada ruta está protegida; que la UI oculte pantallas de admin es solo cosmética y la suite de tests es el contrato real.
- Blindado de serie — contraseñas scrypt, bloqueo de login, CSP y cabeceras de seguridad, comprobación de Origin en escrituras, envío de pedidos idempotente.