百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

看,这里有300款斯拉夫鸡尾酒手册,利用NAS部署一套酒吧管理系统

mhr18 2024-12-14 11:11 15 浏览 0 评论

本内容来源于@什么值得买APP,观点仅代表作者本人 |作者:可爱的小cherry



大家好,这里是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}

二、修改代码

将以下代码复制到 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


系统使用

一、注册管理员并登录

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

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

来先新建一个酒吧,圆一圆曾经的梦!点击右上角的【Create Bar】

填入酒吧名称、介绍、描述等信息即可保存,必填项只有一个名字

除了新建酒吧以外,我们还可以通过邀请码加入别人的酒吧。让别的酒吧老板点击酒吧下的【Toggle invite code】,然后我们在【Join a bar】处填入即可加入。

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

先看看酒吧有多少种酒吧,满打满算303种,全部都是配餐完成的,拿来就用。如果不够用,我们还可以通过添加配比、流程的方式自定义鸡尾酒套餐。

这里是我们的酒吧调制首页,所有的配方、原料、清单都可以看到

左侧我们随便点击一个菜单进去,看看这配图,看看这配比,看看这操作顺序,绝了。我的脑子已经学会了!

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

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

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

相比于点二维码下单,酒吧可不兴整着一套对吧,弄个电子屏,随时更新菜单,拉满格调。我们可以在菜单栏里随意生成单个、多个鸡尾酒套餐,并设置价格。

通过二维码或者网址,可以直观的展示出所有的组合价格。


我的NAS推荐

这里简单介绍一下Cherry日常使用的几台NAS,以及为何选择这些NAS。

核心设备——群晖 DS920

这是Cherry第一台NAS,服役了好多年了,经典的J4125cpu+24G内存,搭配517实现9块18T盘塞满,主要用来玩玩PT的,日常使用的docker和个人资料,基本都存放在这里,因此也是Cherry感情最深的一台设备,但是J4125的性能瓶颈就在这里,容器多了cpu常年90%徘徊,在部署新项目的时候特别不方便。

当然,对于出入门的同学,920不管是价格还是性能都已经不算好的了,可以尝试2盘位的224+,也期待今年有新的NAS问世。

二代目核心设备——威联通QNAP TS-464C2

正因为前面提到群晖920服役时间过长问题,Cherry在入手了一台N5105的软路由后,又将目光看向了搭配同时期N5095的QNAP TS-464C2,作为NAS届的常青树,QNAP的系统其实一直是Cherry所喜爱的,相比于群晖,威联通的系统更值得深入使用和思考,功能点更丰满。

家庭成员利器——绿联DX4600pro

在家庭成员使用过程中,操作更简单,面向群众基础更广的绿联私有云映入眼帘。父母通过APP方式直接上传备份一些教研资料和照片十分方便,同时通过自带的有声书app还能让父母闲暇之余听听小说之类。

生产NAS——自建Unraid

回到项目生产中,考虑在项目部署过程中,经常会出现启动错误、容器异常、版本迭代等问题,这些问题统统需要强大的cpu和多线程来解决,因此就使用双路洋垃圾组建了一台unraid,用于生产环境使用,也是我的项目部署主力机。


欢迎朋友们评论区讨论留言。我会定期更新关注NAS使用方法、开源软件与Docker软件、游戏与生活相关内容,喜欢的朋友请关注、点赞、留言支持。

本文收录在值得买 「优质内容激励计划·每周精选」,点击了解计划详情>>>

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~




相关推荐

MYSQL数据同步(mysql数据同步方式)

java开发工程师在实际的开发经常会需要实现两台不同机器上的MySQL数据库的数据同步,要解决这个问题不难,无非就是mysql数据库的数据同步问题。但要看你是一次性的数据同步需求,还是定时数据同步,亦...

SpringBoot+Redis实现点赞收藏功能+定时同步数据库

由于点赞收藏都是高频率的操作,如果因此频繁地写入数据库会造成数据库压力比较大,因此采用redis来统计点赞收藏浏览量,之后定时一次性写入数据库中,缓解数据库地压力。一.大体思路设计redis中的储存结...

双11订单洪峰:Codis代理层如何扛住Redis集群搞不定的120万QPS?

双11订单洪峰下的技术挑战每年的双11购物节,都是对电商平台技术架构的极限考验。当零点钟声敲响,海量用户瞬间涌入,订单量呈指数级增长,系统需要承受每秒数十万甚至上百万次的请求。作为电商系统的核心组件之...

基于spring boot + MybatisPlus 商城管理系统的Java开源商城系统

前言Mall4j项目致力于为中小企业打造一个完整、易于维护的开源的电商系统,采用现阶段流行技术实现。后台管理系统包含商品管理、订单管理、运费模板、规格管理、会员管理、运营管理、内容管理、统计报表、权限...

商品券后价产品设计方案(显示券后价)

如何设计一套高效、准确且稳定的券后价计算系统,是电商产品设计中的关键挑战之一。本文详细介绍了商品券后价的产品设计方案,从背景目标、功能设计、系统实现逻辑到异常处理机制等多个方面进行了全面阐述。一、背景...

外观(门面)模式-Java实现(java 门面模式)

定义外观模式(FacadePattern),也叫门面模式,原始定义是:为了子系统中的一组接口提供统一的接口。定义一个更高级别的接口,使子系统更易于使用。大大降低应用程序的复杂度,提高了程序的可维护性...

Mall - 用 SpringBoot 实现一个电商系统

目前最为主流的Web开发技术,包括SpringBoot、MyBatis、MongoDB、Kibina、Docker、Vue等,都是开发者十分需要掌握的技术。有没有一个全面而又实际的项目,能把这...

腾讯云国际站:哪些工具能实现可视化运维?

本文由【云老大】TG@yunlaoda360撰写开源工具Grafana:开源的可视化平台,可与Prometheus、Elasticsearch、MySQL等多种数据源集成,将复杂监控数据转化...

系统稳定性保障全流程实战:事前、事中、事后 Java 代码详解

在互联网架构中,系统稳定性是生命线。本文基于“事前预防、事中管控、事后复盘”三阶段模型,结合Java实战代码,深度解析如何构建高可用系统,让你的服务稳如磐石!一、事前:未雨绸缪,筑牢防线1.发...

Java面试题:拆分微服务应该注意哪些地方方,如何拆分?

在拆分微服务时,需要综合考虑业务、技术和组织等多方面因素,以下是关键注意事项及拆分策略的详细说明:一、拆分注意事项1.业务边界清晰化单一职责原则:每个服务应专注于单一业务能力,例如订单服务仅处理订单...

软件性能调优全攻略:从瓶颈定位到工具应用

性能调优是软件测试中的重要环节,旨在提高系统的响应时间、吞吐量、并发能力、资源利用率,并降低系统崩溃或卡顿的风险。通常,性能调优涉及发现性能瓶颈、分析问题根因、优化代码和系统配置等步骤,调优之前需要先...

Docker Compose实战,多容器协同编排的利器,让开发部署更高效!

开篇导读你是否有过这样的经历?启动一个项目,数据库、Redis、Web服务得一个个敲dockerrun?想让别人复现你的开发环境,却得发一堆复杂的启动命令?明明都是容器,为什么不能“一键启动”所...

如何设计Agent的记忆系统(agent记忆方法)

最近看了一张画Agent记忆分类的图我觉得分类分的还可以,但是太浅了,于是就着它的逻辑,仔细得写了一下在不同的记忆层,该如何设计和选型先从流程,作用,实力和持续时间的这4个维度来解释一下这几种记忆:1...

不了解业务和技术术语怎么做好产品和项目?

基础技术术语术语分类解释API开发技术应用程序接口,不同系统间数据交互的协议(如支付接口、地图接口)。SDK开发工具软件开发工具包,包含API、文档和示例代码,帮助快速接入服务。RESTfulAPI...

Docker 架构详解与核心概念实战图解:一文读懂容器的前世今生

不懂Docker架构,你只是“用容器的人”;理解了它的底层逻辑,才能成为真正的高手!在学习Docker之前,很多同学可能会陷入一个误区:“反正我用dockerrun就能跑起服务,架构这种...

取消回复欢迎 发表评论: