🍸 Bar Entys — Commander un cocktail depuis une tablette

Un soir avec des amis, jongler entre les commandes à la voix c'est bien, mais un vrai système de commande self-hosted sur tablette c'est mieux.

Le concept

Bar Entys, c'est mon bar maison. Quand il y a du monde, je voulais éviter les commandes verbales qui se perdent et les oublis de prénom. L'idée : une tablette en accès libre sur laquelle les invités passent commande, et moi je gère ma file derrière.

Fonctionnalités

Interface client (tablette)

  • Navigation par catalogues saisonniers : Classic, Noël, Halloween
  • Fiche cocktail : photo, nom, liste d'ingrédients
  • Saisie du prénom avec auto-complétion (basé sur l'historique)
  • Validation de commande en un clic
  • Session permanente → pas de login à répéter

Screenshot 2026 06 13 195336

Screenshot 2026 06 13 195356

Dashboard Admin

  • File d'attente FIFO (le plus ancien = prioritaire)
  • Actions par commande : 👳‍♂️Préparer|✅ Valider / ✏️ Modifier / ❌ Annuler
  • Mise à jour temps réel via WebSocket (Socket.io)
  • Statistiques : total validé / modifié / annulé
  • CRUD complet : catalogues, cocktails, photos

Screenshot 2026 06 13 195456

Vue Supervision

  • Ecran dédié pour afficher les commandes prêtes
  • Son de notification (mélodie ~2-3 sec) à chaque commande ready
  • Refresh temps réel

Screenshot 2026 06 13 195630

Stack technique

Composant Technologie
Frontend React + Vite
Backend Node.js + Fastify
Base de données PostgreSQL
Temps réel Socket.io (WebSocket)
Reverse proxy Nginx (host) + Certbot
Conteneurisation Docker Compose
Hébergement OVH (entyscoco)

Workflow complet

L'invité arrive sur la tablette → choisit son cocktail → entre son prénom → valide. La commande arrive instantanément dans ma file admin. Je prépare, je marque "prêt", la supervision affiche la commande avec un son. L'invité vient chercher son verre.

schema bar

Déploiement

Tout tourne dans un docker-compose.yml unique sur entyscoco. Nginx en hôte fait office de reverse proxy vers le port 3080. Certbot gère le certificat SSL pour bar.entyscoco.ovh.

# Lancer le projet
docker compose up -d --build

# Backup BDD
docker compose exec postgres \
  pg_dump -U bar_user bar_db > backup.sql

Ce que j'ai appris

  • Intégration Socket.io pour du temps réel full-stack
  • Gestion des rôles (commande / admin / supervision) avec JWT sur Fastify
  • Upload et serving d'images dans un volume Docker
  • Débogage WebSocket (les images qui disparaissaient lors des updates temps réel — résolu en reconstruisant l'URL côté client après chaque event)

Projet personnel - déployé sur bar.entyscoco.ovh