Bar Assistant

Bar assistant is a self hosted application for managing your home bar. It allows you to add your ingredients, search for cocktails and create custom cocktail recipes.

Directory Structure

    • .env
    • docker-compose.yml

docker-compose.yml

version: "3.8"
 
services:
  meilisearch:
    image: getmeili/meilisearch:v1.6
    environment:
      - MEILI_MASTER_KEY=$MEILI_MASTER_KEY
      - MEILI_ENV=production
    restart: unless-stopped
    volumes:
      - ./meilisearch_data:/meili_data
 
  redis:
    image: redis
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
    restart: unless-stopped
 
  bar-assistant:
    image: barassistant/server:v3
    depends_on:
      - meilisearch
      - redis
    environment:
      - APP_URL=$API_URL
      - LOG_CHANNEL=stderr
      - MEILISEARCH_KEY=$MEILI_MASTER_KEY
      - MEILISEARCH_HOST=http://meilisearch:7700
      - REDIS_HOST=redis
      - ALLOW_REGISTRATION=true
    restart: unless-stopped
    volumes:
      - ./bar_data:/var/www/cocktails/storage/bar-assistant
 
  salt-rim:
    image: barassistant/salt-rim:v2
    depends_on:
      - bar-assistant
    environment:
      - API_URL=$API_URL
      - MEILISEARCH_URL=$MEILISEARCH_URL
      - DEFAULT_LOCALE=en-US
    restart: unless-stopped
 
  webserver:
    image: nginx:alpine
    restart: unless-stopped
    depends_on:
      - bar-assistant
      - salt-rim
      - meilisearch
    ports:
      - 3000:3000
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf

.env

# Your Meilisearch master key
# Find out more here: https://docs.meilisearch.com/learn/getting_started/quick_start.html#securing-meilisearch
MEILI_MASTER_KEY=masterKey-make-it-long-for-security
 
# Base URL of the application
# You should update this value to the one you are using (ex: http://192.168.100.100, https://my-personal-bar.com)
# In this case it's the URL and port that is exposed in webserver service
# The value MUST be without trailing slash
BASE_URL=http://localhost:3000
 
# Meilisearch server instance URL, change if you are using different host from base url, otherwise leave as default
MEILISEARCH_URL=${BASE_URL}/search
 
# Bar Assistant server instance URL, change if you are using different host from base url, otherwise leave as default
API_URL=${BASE_URL}/bar

nginx.conf

server {
    listen 3000 default_server;
    listen [::]:3000 default_server;
    server_name _;
 
    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
 
    client_max_body_size 100M;
 
    location /bar/ {
        proxy_pass http://bar-assistant:3000/;
    }
 
    location /search/ {
        proxy_pass http://meilisearch:7700/;
    }
 
    location / {
        proxy_pass http://salt-rim:8080/;
    }
}

Resources

Website: https://barassistant.app/

GitHub: https://github.com/karlomikus/bar-assistant

Docker Hub: https://hub.docker.com/r/barassistant/server

Configuration: https://docs.barassistant.app/setup/