Fini les carnets papier. La file avance plus vite.
FoodDesk est le système de commandes open source pour fêtes de village, restaurants éphémères et cuisines associatives. Les serveurs prennent les commandes sur leur téléphone, la cuisine coche les plats sur une tablette, les tickets s’impriment tout seuls — et en fin de soirée les comptes sont déjà faits. Sans cloud, sans abonnement, sans commission par commande.
Comptes de démo : mario (serveur), cucina (cuisine), admin — mot de passe fooddesk-demo. Ouvrez-la sur deux appareils : envoyez une commande depuis l’un et regardez-la apparaître instantanément sur l’autre.
Pensé pour toute l’équipe
Chaque rôle a exactement l’écran qu’il lui faut — et rien de plus.
🧾 Les serveurs
Une PWA née pour le téléphone : on touche les produits, on compte les couverts, on ajoute la note cuisine, on envoie. Les commandes sont numérotées par journée de service et une coupure réseau ne peut jamais créer de doublon.
🍳 La cuisine
Les nouvelles commandes apparaissent à l’instant où elles partent, sans recharger. Chaque plat se marque prêt d’un seul geste, et une commande annulée crie ANNULÉE au lieu de disparaître en silence.
🎩 Le maître d’hôtel
Il tient la salle avec des pouvoirs quasi admin : le menu, toutes les commandes, annulations et rapports — mais pas de page réglages, et côté personnel il ne gère que les serveurs.
⚙️ L’administrateur
Il construit le menu, gère le personnel et les rôles, et met en page chaque document imprimé depuis le navigateur — logo, filigrane, format papier, rouleau thermique 80 mm compris — en cinq langues.
📊 Le trésorier
Un tableau de bord quotidien en temps réel : recettes, couverts, moyenne par couvert, détail par produit et par catégorie — plus un CSV propre et un rapport PDF d’une page.
🖨 L’impression
Les tickets cuisine partent droit vers n’importe quelle imprimante CUPS, avec réessai automatique en cas de bourrage ; sans imprimante, la boîte de dialogue d’impression du navigateur prend le relais.
Voyez-le en action
La démo en ligne charge une soirée de fête d’exemple, réinitialisée toutes les 6 heures.
Une soirée sur place
Tout tourne sur une seule machine bon marché — un mini-PC ou une carte type Raspberry — sur le Wi-Fi du lieu. Les téléphones installent FoodDesk comme une app native, directement depuis le navigateur.
La base de données est un seul fichier SQLite, sauvegardé automatiquement toutes les 15 minutes. Une commande prise à 1 h 30 compte encore pour la soirée en cours — les restaurants ne s’arrêtent pas à minuit.
Mettez-le en route
Une commande avec Docker. Le mot de passe admin généré s’affiche au premier démarrage.
docker run -d --name fooddesk -p 3000:3000 -v fooddesk-data:/data \
ghcr.io/adefilippo83/fooddesk:latest
docker logs fooddesk # le mot de passe admin généré s’affiche au premier démarrage
Vous préférez un serveur sur place ? Un script idempotent configure systemd, nginx et les backups sur Debian. Ou ouvrez-le dans GitHub Codespaces pour une instance jetable.
Des principes que le code fait vraiment respecter
TypeScript de bout en bout · Fastify · SQLite · React 19 PWA · GPLv3.
- L’argent est en centimes entiers — aucun float sur le chemin de l’argent, et les prix viennent toujours de la base — un client trafiqué ne peut pas se faire de remise.
- L’historique est immuable — les lignes de commande figent nom et prix ; les annulations sont auditées, jamais effacées. Les tickets d’hier survivent au menu d’aujourd’hui.
- L’autorisation vit côté serveur — chaque route est protégée ; l’UI qui masque les écrans admin n’est que cosmétique et la suite de tests est le vrai contrat.
- Blindé d’origine — mots de passe scrypt, verrouillage du login, CSP et en-têtes de sécurité, contrôle d’Origin sur les écritures, envoi de commandes idempotent.