Initial vault setup
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user