FoodDesk

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.

Tomando un pedido desde el móvil del camarero

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.

Pantalla de cocina con pedidos en vivo
La pantalla de cocina: un toque grande por plato, los pedidos se completan solos.
Panel de informes de fin de jornada
Informes de fin de jornada: ingresos, cubiertos y desgloses, listos para exportar.

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.

📱 Móviles de los camarerosPWA en el Wi-Fi del recinto
🍳 Tablet de cocinaactualizaciones en vivo, sin recargar
🖥 Una sola máquinanginx · Fastify · SQLite
🖨 ImpresoraCUPS

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.