本文最后更新于 2024-06-28,文章内容可能已经过时。

大家好,这里是Cherry,喜爱折腾、捡垃圾、玩数码,热衷于分享NAS、docker玩耍经验~

前言

大家有没有开酒吧的梦想? 在Cherry还小的时候,家里亲戚开过一段时间的酒吧,那时候每天放学就会去酒吧喝点饮料,看着大哥哥、大姐姐们在酒吧里跳舞,听着酒吧的音乐,总是不自觉地认为自己要是能开一家酒吧多好。后来,在抛弃这些不切实际的想法后,又迷上了调酒这个职业,因为觉得够帅。 当然,这一切都没实现,毕竟Cherry不喝酒~ 今天为大家介绍的这款项目厉害了,斯拉夫人开发的酒吧管理项目(没错,竟然不是毛子,差评),该项目集成了303款作者收集到的鸡尾酒调制方法,从外观、成分、顺序、配比等都给出了详细的方案,可以说是有手就能调系列。 项目地址:https://github.com/karlomikus/bar-assistant 项目特性
-包括300多种鸡尾酒配方,并附有详细信息,包括150多种基本成分。
-添加和管理多个酒吧和酒吧成员,使用用户角色进行细粒度用户控制
-用于管理和过滤配料和鸡尾酒的端点
-按ABV、基本成分、标签等过滤食谱
-根据你是否有正确的成分过滤食谱
-详细的鸡尾酒和成分信息
-支持将多个图像分配给资源和图像排序
-根据库存中缺少的成分生成购物清单
-使用Meilisearch自动索引数据
-支持定制鸡尾酒配料替代品
-支持玻璃类型、器皿、标签、成分类别等
-通过URL、JSON、YAML或自定义集合导入鸡尾酒配方
-支持鸡尾酒评级
-创建特定于用户的鸡尾酒收藏,便于参考和分享
-支持鸡尾酒和配料注释
-支持通过公共链接共享食谱,自定义食谱图像和打印
-创建公共栏菜单
-使用用户设置的自定义权限管理自定义API个人访问令牌
-关于食谱和用户口味的详细统计数据

系统部署

🤩本项目使用docker-compose和SSH部署,需要一定技术能力。

一、下载代码

通过finalshell等ssh工具访问nas,这里路径以/volume1/docker/bar为例,然后以此输入以下指令,生成3个文件。
mkdir -p /volume1/docker/bar && cd /volume1/docker/bar
touch {nginx.conf,.env,docker-compose.yml}
image.png

二、修改代码

🔻将以下代码复制到 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/;
    }
}
🔻将以下代码复制到 .env 文件中,改动第二行
MEILI_MASTER_KEY=masterKey-make-it-long-for-security
BASE_URL=http://localhost:3000   #这里要改为实际访问的地址,如http://192.168.1.1:1234
MEILISEARCH_URL=${BASE_URL}/search
API_URL=${BASE_URL}/bar
🔻将以下代码复制到 docker-compose.yml 文件中,只需要改动倒数第7行的端口
version: "3"

services:
  meilisearch:
    image: getmeili/meilisearch:v1.4 # 
    environment:
      - MEILI_MASTER_KEY=$MEILI_MASTER_KEY
      - MEILI_ENV=production
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:7700"]
      interval: 10s
      timeout: 5s
      retries: 5
    volumes:
      - meilisearch_data:/meili_data

  redis:
    image: redis
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 1s
      timeout: 3s
      retries: 30

  bar-assistant:
    image: barassistant/server:v3
    depends_on:
      meilisearch:
        condition: service_healthy
      redis:
        condition: service_healthy
    environment:
      # - PUID=1000 # Optional
      # - PGID=1000 # Optional
      - APP_URL=$API_URL
      - LOG_CHANNEL=stderr # 
      - MEILISEARCH_KEY=$MEILI_MASTER_KEY
      - MEILISEARCH_HOST=http://meilisearch:7700 # 
      - REDIS_HOST=redis # 
      - ALLOW_REGISTRATION=true  # 这个改成false就可以禁止用户注册
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000"]
      interval: 10s
      timeout: 5s
      retries: 5
    volumes:
      - bar_data:/var/www/cocktails/storage/bar-assistant

  salt-rim:
    image: barassistant/salt-rim:v2
    depends_on:
      bar-assistant:
        condition: service_healthy
    environment:
      - API_URL=$API_URL
      - MEILISEARCH_URL=$MEILISEARCH_URL
      - BAR_NAME=$BAR_NAME
      - DESCRIPTION=$BAR_DESCRIPTION
      - DEFAULT_LOCALE=en-US
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080"]
      interval: 10s
      timeout: 5s
      retries: 5

  webserver:
    image: nginx:alpine
    restart: unless-stopped
    depends_on:
      bar-assistant:
        condition: service_healthy
      salt-rim:
        condition: service_healthy
      meilisearch:
        condition: service_healthy
    ports:
      - 1234:3000        # 这里是唯一需要改动的,在.env里端口是多少,这里就是多少
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf # 

volumes:
  bar_data:
  meilisearch_data:

三、启动项目

依旧在ssh界面,输入以下指令
docker-compose up -d

系统使用

一、注册管理员并登录

如果安装成功,下方打码的地方可以看到版本号 image.png

二、管理酒吧,我们开几家店合适?

来先新建一个酒吧,圆一圆曾经的梦!点击右上角的【Create Bar】 image.png 填入酒吧名称、介绍、描述等信息即可保存,必填项只有一个名字。 image.png 除了新建酒吧以外,我们还可以通过邀请码加入别人的酒吧。让别的酒吧老板点击酒吧下的【Toggle invite code】,然后我们在【Join a bar】处填入即可加入。 image.png

三、酒吧套餐来了,300+种调酒配方

先看看酒吧有多少种酒吧,满打满算303种,全部都是配餐完成的,拿来就用。如果不够用,我们还可以通过添加配比、流程的方式自定义鸡尾酒套餐。 image.png 这里是我们的酒吧调制首页,所有的配方、原料、清单都可以看到 image.png 左侧我们随便点击一个菜单进去,看看这配图,看看这配比,看看这操作顺序,绝了。我的脑子已经学会了! image.png

四、酒吧原料管理,进出货都不可少

在【Ingredients】里,我们可以查阅和维护所有的原料,还可以进行进货单管理、打印。 image.png

五、酒吧菜单一键生成,格调拉满

相比于点二维码下单,酒吧可不兴整着一套对吧,弄个电子屏,随时更新菜单,拉满格调。我们可以在菜单栏里随意生成单个、多个鸡尾酒套餐,并设置价格。 image.png 通过二维码或者网址,可以直观的展示出所有的组合价格。 image.png