FEATURED · 精选文章

用BrewUI把家酿啤酒变成数据闭环:配方、批次与库存管理实战

发布时间 / 2026/9/20 3:05:09
来源 / 创域科博编辑部
栏目 / 资讯中心
用BrewUI把家酿啤酒变成数据闭环:配方、批次与库存管理实战 上个月朋友来家里喝酒端起一杯浑浊的新英格兰IPA问我你这些配方、发酵细节、装瓶记录到底是怎么存下来的总不能全凭脑子记吧我指了指屏幕上的BrewUI从麦芽配方、糖化步骤到发酵曲线、装瓶日期全都在这个界面里躺着。BrewUI是我这两年用得最顺手的一套开源家酿管理工具说白了就是把酿酒这件事变成能反复查阅、能横向对比、能沉淀经验的数据系统。这篇文章就把我的用法、踩过的坑、以及关键参数背后的计算逻辑一次说清楚适合那些已经酿过几批、想把手忙脚乱变成有条不紊的家酿爱好者。1. 为什么家酿需要BrewUI这样的工具1.1 家酿记录的三个痛点刚开始酿酒那阵子我习惯用笔记本记录每次糖化温度、投酒花时间、初始比重、终止比重都写在本子上。写了十几批之后发现三个问题第一翻旧记录太费劲想对比两批相同配方的差异得来回翻几十页第二配方变更记录不完整下次想复刻上一批的味道常常想不起上次到底调整了多少克酒花第三本子不会替你算数IBU、SRM、ABV全都得自己找公式或者查表格一忙起来就懒得算最后只留一堆原始数字没有结论。BrewUI解决的就是这摊子事。它把酿造过程拆成配方、批次、库存、设备几个模块每批酒从设计配方到装瓶入桶都有一条完整的数据链。更关键的是自带的计算引擎能帮你把IBU、SRM、ABV、糖化效率这些东西实时算出来不用你再对着手机计算器按来按去。1.2 产品定位与技术选型思路我第一次看到BrewUI的仓库时第一反应是“这项目懂行”。它的定位不是给专业酒厂用的ERP而是给家酿爱好者个人部署的一套轻量级数据工具。底层用的是常见的Web技术栈后端Python前端Vue数据默认存在本地数据库里不进云端。这意味着你的配方、批次记录都留在自己手里不会因为某个云端服务关停就丢数据。选这套组合有它现实的原因Python写起数据处理和计算逻辑来很顺手家酿圈子里也有人用它做过各种公式脚本社区资源多Vue做前端界面维护成本低拆箱即用。部署方式也简单最常见的是用Docker起一个容器几分钟就能跑起来后续升级不用手动装一堆依赖。我自己用的是Docker部署在NAS上手机浏览器直接访问局域网地址在厨房里一边操作一边记录完全不需要回到电脑前敲键盘。1.3 为什么是“配方-批次-库存”三角结构用过几个家酿软件之后我发现BrewUI最值得学习的不是某个花哨功能而是它的数据结构。它把酿造拆成三个互相关联的实体配方Recipe、批次Batch、库存Inventory。配方描述“我打算酿什么”批次记录“我实际酿了一锅之后的真实过程”库存则是“我手头有什么原料”。三方关联之后你能回答很多经常被忽略的问题某个配方实际消耗了多少麦芽上一批用剩下的酒花还剩多少克某个原料放了几个月用在哪几批酒里这个三角结构看起来简单但对家酿来说非常关键。市面上一堆工具只有配方管理没有任何库存和批次记录结果就是你设计了很好的配方却不知道自己手头原料够不够也不知道实际酿造时偏差了多少。BrewUI把这三个环节串在一起数据才是完整闭环。2. 核心模块解析与实操要点2.1 配方模块从麦芽清单到可执行步骤配方模块是所有环节的起点。打开BrewUI的配方页填入基础信息然后开始加麦芽、加酒花、加酵母、设计糖化和发酵步骤。麦芽条目要注意每个原料的可发酵色度和出糖潜力。BrewUI内置了常用麦芽的数据库比如淡色大麦芽的色度大概是2到3 SRM出糖潜力在1.036左右也就是1磅麦芽用1加仑水糖化理论上能得到1.036的原始比重。实际使用中你要自己维护一些本地原料比如某家小众麦芽厂出的特种麦芽数据库里没有就根据包装标注自己填。酒花条目需要关注阿尔法酸含量AA和用途。不同批次的酒花阿尔法酸会有波动尤其手工分装的酒花保存条件不一样实际AA值可能和包装标注差不少。我习惯每收到一批新酒花就在BrewUI里更新一次AA值这样IBU计算才准。配方模块里另一个容易忽略的是步骤顺序设计。BrewUI支持把糖化、熬煮、发酵、熟成拆成多个步骤每个步骤可以注明温度、时间、目标pH、操作说明。很多新手只是把原料填进去不写步骤结果第二次做同一配方时完全想不起当时的操作细节。我的习惯是步骤越细越好连“糖化结束后用75度热水洗糟15分钟”这种都写进去下次照着做就行。2.2 批次模块发酵跟踪与装瓶记录配方是设计图批次才是施工现场。每次开酿我都会从已有配方创建一个新批次这样系统和这次酿造绑定一条独立记录后续可以填写起始比重、酵母投放温度、发酵室温度、终止比重、装瓶日期这些信息。发酵跟踪是我用BrewUI最频繁的功能。按下酵母后的几天里我每天记录一次温度、比重、读数、风味描述。不是所有家酿工具都支持这种“发酵日志”式的记录方式但BrewUI的批次详情页做得很顺手每条日志都有时间戳后面看趋势图时一目了然。装瓶记录这块容易被人忽略其实非常重要。BrewUI可以记录每瓶酒的装瓶日期、碳化方式、糖量、预期二氧化碳体积甚至可以给每个瓶子打标签编号。等你半年后打开一瓶拖了很久的老酒发现气体已经弱了回头一查当时的记录就知道是碳化糖放少了还是瓶子密封不行。这种复盘能力正是数据记录的价值所在。2.3 库存模块原料效期与成本核算库存模块让很多人大呼“早点用就好了”。每次从网上买麦芽、酒花、酵母我就先录入库存品名、数量、购买日期、保质期。用掉多少就在创建批次时同步扣除。这个模块最直接的好处是减少浪费。以前我经常因为忘记自己还有哪些酒花重新买了重复品种放到最后香气都没了。现在打开BrewUI就能看到目前的库存清单做配方时随时对照有没有足够的原料。BrewUI的库存还可以关联成本。把每种原料的单价录进去创建批次时系统能自动算出这一锅酒的平均原料成本。我试过做一批浑浊IPA光是酒花就花了两百多块看到数字那一刻才明白为啥每次都舍不得送人。如果你有记账习惯这个功能可以作为家酿成本复盘的基础。2.4 计算引擎IBU/ABV/SRM等参数背后的公式BrewUI的价值一半在计算引擎上但很多人只把它当“黑盒”用不知道里头怎么算也不知道该在什么时候信任它。IBU国际苦度单位是计算最多、争议也最大的参数。BrewUI默认采用Tinseth公式这是家酿圈里很常见的苦度估算模型。它把酒花用量、阿尔法酸含量、熬煮时间、熬煮液比重统一进一个经验函数里最后给出一个估算值。注意这里是估算因为实际苦度还受酒花新鲜度、熬煮强度、麦汁pH等因素影响。所以用BrewUI算出来的IBU应该理解为“参考值”而不是“精确测定值”。ABV的计算比较简单。标准公式是起始比重-终止比重×131.25单位是酒精体积百分比。BrewUI里只要填对OG和FG就会自动出结果。要注意的是如果添加了蜂蜜、糖浆这类可发酵辅料得把辅料带来的比重变化也算进去不然ABV会低估。SRM色度计算相对直接每种麦芽贡献的色度按比例加权再考虑熬煮浓缩效应。BrewUI的颜色显示虽然不是标准色卡但对日常评估“这酒会不会太深”已经够用。2.5 设备管理与批次容量换算BrewUI可以记录设备参数比如糖化桶容积、煮沸锅容积、蒸发率、冷却损耗。这些参数直接影响配方的预估产量和起始比重。举个例子我的煮沸锅一小时蒸发率大约在10%左右如果用5加仑批次规模计算煮沸前麦汁体积就要做到5.5到6加仑才能在冷却后得到5加仑。BrewUI里有设备面板把这些参数录进去新建配方时它会自动帮你换算水量省去手动估环节。很多人忽略的是不同批次规模之间的换算。你今天做了一个5加仑的配方想下次做10加仑直接用配方页面里的批量缩放功能就行。但要注意酒花用量和麦芽用量是线性缩放酵母投放量却不完全线性因为酵母活性、存活率都有差异。建议大批量时适当增加投放量宁可稍微多投也不要发酵启动过慢导致杂味。3. BrewUI部署与建库实操3.1 极简部署Docker一条命令跑起来BrewUI的部署不像某些企业级工具那样一堆前置条件最省事的方式就是Docker。我用的部署结构非常简单一个容器挂两个目录一个存数据库文件一个存用户上传的图片和备份。命令大致如下docker run -d \ --name brewui \ -p 8080:8080 \ -v /path/to/brewui-data:/data \ --restart unless-stopped \ brewui/brewui:latest这里我把外部端口映射到8080数据目录挂载到宿主机的“/path/to/brewui-data”容器重启时自动拉起。启动之后浏览器访问“http://服务器IP:8080”就会进入初始化页面设置管理员账号和密码。需要注意不同镜像版本的数据目录路径可能不一样。如果发现容器起来了但配置没保存大概率是挂载路径不对。查看容器日志docker logs brewui看到日志里写着数据库文件创建在哪个路径把宿主目录重新挂载到那个路径即可。如果你没有Docker环境也可以用Python直接跑源码但依赖较多新手容易在环境配置上卡住。我建议还是用Docker省时省力。3.2 数据初始化与基础配置第一次进BrewUI后台建议按这个顺序完成基础配置。先完善设备参数。进入“设置-设备”页面填上你常用的糖化桶容积、煮沸锅容积、蒸发率。这里的蒸发率决定配方计算时的预煮沸体积最好通过实测来填煮沸前在锅边做刻度标记记下麦汁高度煮沸60分钟后再次读取差值就是蒸发率。我的实测锅蒸发率大概在11%填进去后配方预估准确度明显提高。再设置原料数据库。BrewUI内置了一批常见麦芽和酒花但为了贴合国内购买渠道我通常把自己常用的麦芽和酒花手工维护一遍。比如我用到的皮尔森麦芽、维也纳麦芽、燕麦片酒花里的西楚、马赛克、卡斯卡特都会把对应的色度、阿尔法酸、出糖潜力数据更新为实际包装值。这一步虽然费一点时间但后面每次建配方都会受益。最后设置用户信息这不是必须的但我建议填上你的批次规模偏好比如默认5加仑或20升新建配方时能省去手动选择。3.3 录入第一个配方以美式淡色艾尔为例我拿一个很基础的美式淡色艾尔为例演示BrewUI里完整的配方录入过程。打开配方页面先填配方名称和类型风格选择APA。批量规模填20升煮沸时间60分钟。接着在麦芽页面添加淡色大麦芽 4.5千克色度3 SRM焦香麦芽 0.3千克色度20 SRM燕麦片 0.2千克色度1 SRMBrewUI会自动根据麦芽重量和各自的出糖潜力计算预估原始比重。我这里的经验是预估OG一般在1.050左右如果实际糖化效率不高可能会落到1.045以下。接着添加酒花。假设西楚酒花阿尔法酸为12%投放计划是煮沸60分钟添加15克用于苦味煮沸15分钟添加20克用于风味煮沸5分钟添加30克用于香气BrewUI会在添加每个酒花条目时实时计算苦味贡献最后汇总一个预估IBU。这个配方设计出来大概在35到45 IBU之间符合APA风格。然后是酵母和发酵步骤。我一般选美国艾尔酵母发酵温度18到20度。步骤可以写成18度主发酵7天然后升温到20度还原双乙酰2天再降温到10度澄清3天。配方保存之后直接点“创建批次”这一批的酿造记录就和配方关联起来了。3.4 创建批次并跟踪发酵日志批次创建时BrewUI会自动带出配方里的原料和步骤你要做的就是记录实际过程。糖化结束后等麦汁冷却到合适温度用比重计或糖度计测初始比重填进批次页面的“起始比重”字段。顺手把麦汁量也填上如果实际收集的体积和配方预估差太多系统会提醒你效率可能偏离。投放酵母后在发酵日志里写下当天日期、温度和品尝观察。我的习惯是每天同一时间记录一次尤其是前三天发酵最活跃温度波动也最大。BrewUI的时间戳会让你后期复盘时清楚看到哪天温度高了、那天比重降得快。等到发酵结束测终止比重填进系统。它会自动算出ABV和表观发酵度。如果发酵度偏低检查一下是不是酵母投放量不够或发酵温度太低。我遇到过一批IPA终点OG停留在1.020查日志发现头两天温度跌到16度以下酵母几乎休眠了。装瓶那天在批次里记录瓶数、装瓶日期、碳化糖用量。BrewUI自带的碳化计算器可以按目标二氧化碳体积帮你算糖量后面我会展开讲这个计算逻辑。3.5 参数计算演示糖化效率与装瓶糖量糖化效率是新手最容易蒙圈的概念。公式是实际浸出物比重除以理论最大浸出物比重再乘以100%。实际操作中我们从麦芽包装上能看到每千克麦芽能提供多少潜在比重点数。比如一批淡色大麦芽的潜在比重是1.036意思是1千克麦芽用1升水糖化理论能得到的比重是1.036。5千克就是180个比重点。如果实际收集了20升麦汁测得OG为1.048那实际浸出物点数就是48×20960点。理论最大浸出物点是5×36×20但这里不能这么直接乘应该用“潜在比重点数”概念5千克麦芽乘以36点/千克等于180点再除以20升等于9点/升换算成比重约1.009而后乘以1000得到9。所以理论比重是1.009不对这个算法有问题我需要重新组织。我通常简化处理配方中5千克麦芽、潜在比重1.036如果全部转化并溶入20升麦汁理论OG估算为5×36/209也就是理论OG为1.009不对1.036的点数在20升里要被稀释标准单位是“比重点×加仑”这里有点绕。最稳妥的是用BrewUI自动计算的预估OG作为参考然后自己按实际OG除以预估OG来算糖化效率。比如配方预估OG是1.050实测1.045那糖化效率就是45/5090%。这个简化方式虽然不严谨但对家酿场景够用BrewUI内部会做更细的计算。装瓶糖量的计算对做自然碳化的人来说很重要。目标是让瓶内二氧化碳达到特定体积数比如英式艾尔是1.8到2.2体积美式IPA可以到2.4到2.6体积。计算公式涉及到发酵结束时的残存二氧化碳和温度的关系手动算太麻烦。BrewUI的碳化计算器可以这样用选择目标二氧化碳体积填入当前发酵温度和需要装瓶的升数它就会给出玉米糖葡萄糖的建议添加量。我按常见经验值供你参考20度发酵结束目标2.5体积二氧化碳20升啤酒大约需要110到130克玉米糖。温度低时溶解在酒里的气体更多需要加的糖就少一些。装瓶糖宁少勿多不然有爆瓶风险。4. 常见问题与排查技巧实录4.1 温度和比重数据总是对不上用BrewUI记录时最常遇到的是温度计读数和发酵室温对不上。我排查过几次发现不是软件问题而是使用位置的问题。温度探头贴在发酵桶侧面如果发酵桶放在通风口附近桶壁温度受环境影响读数就会比麦汁中心温度低两三度。解决方法是把温度探头用保温材料包裹住贴在发酵桶中部而不是底部。同时确保探头没有悬空最好加一点导热硅脂接触桶壁。用BrewUI记录时我还会注明温度计类型和安装位置这样对比不同批次时能识别出是真实温差还是测量位置造成的误差。4.2 比重计读数偏差怎么校正比重计的校准问题很多人是在对比数据时发现不对劲才去查的。比重计应该用20度左右的蒸馏水校准读数为1.000。如果读数不是1.000就要做差值修正。还有一种偏差来自麦汁温度。麦汁温度高于20度时密度降低比重读数偏小。BrewUI的日志记录页一般会让你填温度它按公式自动修正。但如果你的比重计是老式的没有内置温度修正务必养成“一边测温度一边记比重”的习惯让BrewUI帮你修正。另外还有碳酸气泡附着在比重计上导致的读数偏高。把麦汁倒进量筒后等一两分钟让气泡消散再读数。4.3 发酵桶密封漏气与单向阀异常发酵过程中单向阀不冒泡不一定代表着发酵停止。最常见的情况是密封没做好二氧化碳从盖缝跑掉了单向阀自然没动静。BrewUI日志里如果连续几天没等到预期比重变化我得先去检查密封而不是急着加酵母。用洗洁精水涂在桶盖边缘和硅胶圈处观察有没有气泡是最快的检漏方法。发现漏气后重新开盖装好涂一层食品级密封脂基本能解决。单向阀里水少了或者水干了也会失去水封效果。我习惯每周检查一次单向阀水量发酵前两周尤其勤快。4.4 数据备份与多设备同步问题BrewUI默认把数据存在本地数据库单机使用没问题但换手机或换设备时就需要主动备份。我部署的时候就把数据目录挂到NAS的共享文件夹这样即使容器出问题数据库文件还在。日常备份我建议用一个简单的定时任务每天压缩数据库文件保留最近30份。BrewUI社区也有人用同步盘工具把数据目录放到网盘同步目录里这样换电脑也能看到最新数据。不过我提醒一句家酿数据里包含个人配方如果担心隐私就不要放到公共网盘放在本地NAS最稳妥。4.5 常见故障速查表现象可能原因排查与解决创建配方后预估OG明显偏低麦芽数据中出糖潜力填错对照包装更新潜在比重IBU数值异常高酒花AA值填错为干花百分比改为实际AA并检查用量单位批次中的ABV负数起始比重小于终止比重检查是否填反或者比重计校准确认发酵日志无法保存数据库目录没有写入权限检查容器目录挂载权限新设备访问不了BrewUI端口未开放或防火墙没放行确认宿主机端口映射和防火墙规则库存数量总对不上创建批次时没有扣减原料新建批次时勾选关联库存消费碳化糖量提示过高目标二氧化碳体积设太高按风格调整不要超过2.8体积5. 进阶玩法把BrewUI变成酿造数据中心5.1 接入物联网传感器BrewUI本身不直接连接温度探头但它的数据表结构清晰可以通过脚本把传感器数据定期写入发酵日志。我用一个简单的方案把小型WiFi温度探头放在发酵桶旁边每隔一小时通过脚本调用BrewUI的API写入一条温度记录。这样下班回家打开BrewUI就能看到一整天的发酵温度曲线。写入频率不需要太高每小时一次足够。太频繁会生成大量无意义数据让页面加载变慢。也可以把温度探头直接沉入发酵液面以下但前提是做好消毒不然会有污染风险。5.2 配方分享与社区协作BrewUI支持配方导出成标准格式类似BeerXML可以直接分享给朋友或者导入到其他软件里。这个功能我用得很多因为家酿圈子里相互交换配方是常态。把配方导出发到群里对方导入之后原料、步骤、参数都完整可见省去一个个敲字说明的时间。接收别人配方后我通常先做一次“数据校验”核对麦芽色度、酒花AA值是否符合本地原料实情。因为不同产地、不同批次的数据可能差异很大直接照用可能导致IBU和颜色有偏差。5.3 酿造复盘用数据指导下一次改良BrewUI用得越久数据积累越多复盘价值就越大。我每年年底会倒出整年的批次记录做一次横向对比同一款APA不同酵母批次、不同发酵温度下最终ABV和发酵度的差异有多少。有一次我连续做了三批同样的比利时赛松唯一区别是发酵温度分别是18度、22度和26度。通过BrewUI里的日志清楚看到温度越高终止比重越低出来的酒越干。这种结论靠回忆是得不出来的只有数据才能掰开揉碎地展示。我建议每个家酿爱好者都给自己定一个简单的数据复盘机制每批酒装瓶后花十分钟在BrewUI里写一段总结记录发酵中有没有什么异常、口感是否达到预期、下一批要改什么。这些评论虽然不影响计算但过几个月回头看比单纯一堆数字有用得多。如果想让BrewUI发挥更大的作用还可以结合自己的酿造日历计划在什么节假日开酿预计什么时候熟成提前在批次模块排好时间线。我习惯把准备酿造的配方提前一个月建好批次到日子直接照着做不用临时翻配方、对库存。我个人在实际操作中最大的体会是BrewUI这个东西越早开始录入数据越好哪怕前面的批次不完整也先建立起“每次酿造都留下记录”的习惯。记录本身不产生风味但能让你下一次做得更好。我踩过的最大的坑就是初期太迷信软件算出来的数字忽略了实际尝味道的重要性。记住BrewUI是帮你做决定的工具不是替你做决定的老板。最后再分享一个小技巧每批酒灌瓶时留一瓶贴上对应批次编号开喝时顺手打开BrewUI看一眼当批记录时间久了你会对自己的酿造风格有一种非常清晰的认识。
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻