Bar Assistant logo

Bar Assistant

All-in-one solution for managing your home bar

Alternative to: barsys

Bar Assistant screenshot

Bar Assistant is a cocktail-oriented recipe manager built specifically for home bartenders, unlike general-purpose recipe apps. It tracks ingredients, ingredient substitutes, ABV calculations, and unit conversions, and supports multiple bars, bar members, shopping list generation, and public menu sharing.

Bar Assistant Docker Compose example

Self-host Bar Assistant on your own server, homelab, or VPS starting from this Docker Compose example. It runs Bar Assistant in Docker containers using the official getmeili/meilisearch:latest, redis:latest, barassistant/server:v6, barassistant/salt-rim:v5 images, with persistent volumes and automatic restarts preconfigured. Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.

services:
  meilisearch:
    image: getmeili/meilisearch:latest
    restart: unless-stopped
    environment:
      # Disable Meilisearch anonymous usage analytics.
      MEILI_NO_ANALYTICS: "true"
      # Master key protecting the search engine. In production mode Meilisearch
      # requires this to be at least 16 bytes long. Replace with a long random string.
      MEILI_MASTER_KEY: "CHANGE_ME_TO_A_LONG_RANDOM_STRING"
      # Run Meilisearch in production mode (enforces the master key).
      MEILI_ENV: "production"
    volumes:
      - meilisearch_data:/meili_data

  redis:
    image: redis:latest
    restart: unless-stopped
    environment:
      ALLOW_EMPTY_PASSWORD: "yes"

  bar-assistant:
    image: barassistant/server:v6
    restart: unless-stopped
    depends_on:
      - meilisearch
      - redis
    environment:
      # Public URL where the Bar Assistant API (this service) is reachable.
      APP_URL: "http://localhost:8082"
      # Master key used to talk to Meilisearch; must match MEILI_MASTER_KEY above.
      MEILISEARCH_KEY: "CHANGE_ME_TO_A_LONG_RANDOM_STRING"
      # Internal address of the Meilisearch service on the compose network.
      MEILISEARCH_HOST: "http://meilisearch:7700"
      # Internal hostname of the Redis service on the compose network.
      REDIS_HOST: "redis"
      CACHE_DRIVER: "redis"
      SESSION_DRIVER: "redis"
      # Allow new users to register an account on this instance.
      ALLOW_REGISTRATION: "true"
    volumes:
      - bar_data:/var/www/cocktails/storage/bar-assistant

  salt-rim:
    image: barassistant/salt-rim:v5
    restart: unless-stopped
    depends_on:
      - bar-assistant
    environment:
      # Public URL of the Bar Assistant API, used by the browser client.
      API_URL: "http://localhost:8082"
      # Public URL of Meilisearch, used by the browser client for search.
      MEILISEARCH_URL: "http://localhost:8081"

volumes:
  bar_data:
  meilisearch_data:

Prefer a managed setup? WinterFlow installs, configures, and updates Bar Assistant for you using this same Docker Compose configuration.