126 lines
5.1 KiB
Markdown
126 lines
5.1 KiB
Markdown
---
|
|
title: Bar Assistant
|
|
created: 2026-06-08
|
|
updated: 2026-06-08
|
|
type: app
|
|
tags: [catalogue, recipes, self-hosted, typescript]
|
|
confidence: high
|
|
contested: false
|
|
sources:
|
|
- https://barassistant.app
|
|
- https://github.com/karlomikus/bar-assistant
|
|
---
|
|
|
|
# Bar Assistant 🍸
|
|
> Solution complète pour gérer son **bar à domicile** : cocktails, ingrédients, inventaire et recettes custom.
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | https://barassistant.app |
|
|
| **GitHub** | https://github.com/karlomikus/bar-assistant |
|
|
| **License** | MIT |
|
|
| **Langage** | PHP (Laravel) + Vue.js |
|
|
| **Étoiles** | 1 034 |
|
|
| **Dernière MAJ** | 2026-05-24 |
|
|
| **Catégorie** | [[cat-recipes]] |
|
|
|
|
## Description
|
|
Bar Assistant est un **gestionnaire de cocktails** open source, l'équivalent de Mealie mais spécialisé dans le **bar à cocktails**. Il catalogue des centaines de recettes classiques (Mojito, Negroni, Old Fashioned, Margarita) issues d'une base de données collaborative, permet d'**inventorier son bar** (bouteilles, quantités, dates d'ouverture), de suggérer des cocktails en fonction des ingrédients disponibles, et de créer ses propres recettes.
|
|
|
|
L'**inventaire intelligent** est la killer-feature : Bar Assistant scanne votre stock et vous dit quels cocktails vous pouvez réaliser **à l'instant T**, ceux qui manquent d'1 seul ingrédient, ou ceux qui nécessitent une course. Le système d'**achat / shopping list** génère automatiquement la liste des bouteilles à acquérir pour débloquer un maximum de recettes.
|
|
|
|
Le projet supporte l'**import/export** au format **cocktailDB**, le **scan de code-barres** (mobiles) pour ajouter une bouteille en un clic, les **unités de mesure** (cl, oz, dash) avec conversion automatique, l'**API REST** complète, l'**authentification OIDC** et un **mode multi-utilisateurs** pour les bars pro, restaurants ou collectifs.
|
|
|
|
## Installation
|
|
### Docker Compose
|
|
```yaml
|
|
services:
|
|
bar-assistant:
|
|
image: barassistant/server:latest
|
|
container_name: bar-assistant
|
|
environment:
|
|
- APP_URL=https://bar.example.com
|
|
- DB_CONNECTION=sqlite
|
|
- APP_KEY=base64:*** volumes:
|
|
- ./data:/app/database
|
|
- ./uploads:/app/storage/app/uploads
|
|
ports:
|
|
- "8080:80"
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.bar.rule=Host(`bar.example.com`)
|
|
- traefik.http.routers.bar.entrypoints=websecure
|
|
- traefik.http.routers.bar.tls.certresolver=letsencrypt
|
|
- traefik.http.services.bar.loadbalancer.server.port=80
|
|
restart: unless-stopped
|
|
```
|
|
|
|
### Version complète (Postgres + Meilisearch)
|
|
```yaml
|
|
services:
|
|
bar-assistant:
|
|
image: barassistant/server:latest
|
|
environment:
|
|
- DB_CONNECTION=pgsql
|
|
- DB_HOST=db
|
|
- DB_DATABASE=bar
|
|
- DB_USERNAME=bar
|
|
- DB_PASSWORD=*** - MEILISEARCH_HOST=http://meili:7700
|
|
- MEILISEARCH_KEY=${MEILI_KEY}
|
|
depends_on:
|
|
- db
|
|
- meili
|
|
volumes:
|
|
- ./data:/app/database
|
|
ports:
|
|
- "8080:80"
|
|
restart: unless-stopped
|
|
|
|
db:
|
|
image: postgres:16-alpine
|
|
environment:
|
|
- POSTGRES_USER=bar
|
|
- POSTGRES_PASSWORD=*** - POSTGRES_DB=bar
|
|
volumes:
|
|
- ./pgdata:/var/lib/postgresql/data
|
|
restart: unless-stopped
|
|
|
|
meili:
|
|
image: getmeili/meilisearch:v1.10
|
|
environment:
|
|
- MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
|
|
volumes:
|
|
- ./meili_data:/meili_data
|
|
restart: unless-stopped
|
|
```
|
|
|
|
## Configuration
|
|
1. Générer une **`APP_KEY`** : `docker compose run --rm bar-assistant php artisan key:generate --show`.
|
|
2. Démarrer la stack et créer le **compte admin** depuis `https://bar.example.com`.
|
|
3. (Recommandé) Activer **Meilisearch** pour la recherche full-text performante (sinon : LIKE SQL).
|
|
4. Importer la **base de données de cocktails** depuis l'UI ou via la commande `php artisan bar:import`.
|
|
5. Configurer l'**authentification OIDC** (Authentik, Keycloak) pour intégrer Bar Assistant au homelab.
|
|
|
|
## Alternatives
|
|
- **Open source** : [[app-liquor-locker]] (IA, plus petit), [[app-mealie]] (recettes généralistes), [[app-tamari]], [[app-vanilla-cookbook]], CocktailBerry (Pi), Mr. Cocktail, ReciPal (cocktails + bar), BarBot, DrinkKit, MyBar.
|
|
- **Propriétaire** : Highball (iOS), Mixology (Android), Barventory, Distiller, Mixel, The Cocktail App, Master of Mixology.
|
|
|
|
## Sécurité
|
|
- **`APP_KEY`** : clé de chiffrement Laravel, à regénérer absolument avant production.
|
|
- **HTTPS obligatoire** : les données du bar peuvent révéler des préférences, allergies.
|
|
- **Authentification OIDC** recommandée pour les comptes multi-utilisateurs.
|
|
- **Backups** du dossier `./data` (SQLite) ou de la base Postgres.
|
|
- **Limiter l'upload d'images** : Bar Assistant accepte des images, vérifier la taille max.
|
|
|
|
## Ressources
|
|
- Code : https://github.com/karlomikus/bar-assistant
|
|
- Site : https://barassistant.app
|
|
- Documentation : https://barassistant.app/docs
|
|
- Issues : https://github.com/karlomikus/bar-assistant/issues
|
|
|
|
## Pages Liées
|
|
- [[cat-recipes]] — Catégorie parente
|
|
- [[app-liquor-locker]] — Alternative avec IA
|
|
- [[app-mealie]] — Recettes généralistes
|
|
- [[recettes-docker-compose]] — Modèles de stacks
|