Bar Assistant 6.10.1 配置参数详解
Bar Assistant v6.10.1(Laravel 12/PHP 8.4)配置面逐项拆解:.env 全量清单、APP_KEY、SQLite 默认库与 MySQL/PG 切换、Redis 缓存会话分区、Meilisearch 索引结构、吧台业务开关、抓取代理、AI provider、价格货币与计费、日志与改配置标准动作,附 config:show 三处报错实录。
Bar Assistant 6.10.1 配置参数详解
适用版本:Bar Assistant API v6.10.1(Laravel 12.70.2 / PHP 8.4.27,
php artisan about实测)。本文以官方.env.example与运行时php artisan config:show实测输出为纲,逐项拆解配置面。部署过程见 《Bar Assistant Docker Compose 部署指南》。
一、配置体系总览
Bar Assistant 是 Laravel 应用,配置分三层:
- 环境变量
.env(官方模板.env.example)——所有可调项的入口,容器部署时直接以环境变量注入; config/*.php——Laravel 配置定义层,读取 env;- 配置缓存——生产镜像默认已缓存(
php artisan about实测Config .... CACHED),改 env 后需php artisan config:clear或重启服务进程才生效。
查看生效值的正确姿势(实测):
php artisan config:show bar-assistant
三个真实报错(照抄,避坑用):
Not enough arguments (missing: "config").
(config:show 必须带配置名)
Too many arguments to "config:show" command, expected arguments "config".
(一条命令只能查一个配置文件,config:show database redis 不行)
ERROR Configuration file or key redis does not exist.
(v6 的 Redis 连接定义在 database 配置里,应查 config:show database)
二、官方 .env.example 全量清单(2026-11-01 实查仓库)
APP_NAME="Bar Assistant"
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=
# Database
DB_CONNECTION=sqlite
DB_FOREIGN_KEYS=true
# Drivers
LOG_CHANNEL=stderr
LOG_LEVEL=warning
CACHE_DRIVER=redis
FILESYSTEM_DISK=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=redis
SESSION_LIFETIME=120
# Redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
# Search
SCOUT_DRIVER=meilisearch
MEILISEARCH_HOST=
MEILISEARCH_KEY=
# Mail
# MAIL_MAILER= / MAIL_HOST= / MAIL_PORT= / MAIL_USERNAME= / MAIL_PASSWORD=
# MAIL_ENCRYPTION= / MAIL_RESET_URL= / MAIL_CONFIRM_URL=
MAIL_FROM_ADDRESS="no-reply@barassistant.app"
MAIL_FROM_NAME="Bar Assistant"
MAIL_REQUIRE_CONFIRMATION=false
# Billing
# ENABLE_BILLING= / BILLING_PRODUCT_PRICES= / MAX_USER_BARS= / CASHIER_CURRENCY=
# PADDLE_SANDBOX= / PADDLE_VENDOR_ID= / PADDLE_VENDOR_AUTH_CODE= / PADDLE_AUTH_CODE=
README 另列高频项:ALLOW_REGISTRATION、ENABLE_PASSWORD_LOGIN、METRICS_ENABLED、METRICS_ALLOWED_IPS、SCRAPING_HTTP_PROXY、SCRAPING_CLIENT_CERT、GEN_AI_PROVIDER、GEN_AI_MODEL、GEN_AI_IMAGE_PROVIDER、GEN_AI_IMAGE_MODEL。
三、应用核心(APP_*)
| 变量 | 默认 | 说明 |
|---|---|---|
APP_NAME | Bar Assistant | 邮件与页面标题用名 |
APP_ENV | production | 生产固定 production |
APP_KEY | 空 | 等价其他栈的 SECRET_KEY:加密会话/令牌的根密钥,首次部署必须生成(php artisan key:generate),官方镜像安装脚本自动完成;丢失后已签发令牌全部失效 |
APP_DEBUG | false | 生产保持 false |
APP_URL | 空 | API 对外可达地址;compose 里注入的是浏览器可达地址(本例 http://localhost:8135),php artisan about 实测回显 URL .... localhost:8135 |
四、数据库(DB_*)——默认 SQLite,非 MongoDB
常见误区把 Bar Assistant 写成 MongoDB 栈;实测 config:show database 默认连接是 SQLite,单文件库:
database ...................................................................
default ............................................................. sqlite
connections ⇁ sqlite ⇁ driver ....................................... sqlite
connections ⇁ sqlite ⇁ database .. storage/bar-assistant/database.ba3.sqlite
connections ⇁ sqlite ⇁ journal_mode .................................... wal
connections ⇁ sqlite ⇁ foreign_key_constraints ........................ true
connections ⇁ sqlite ⇁ busy_timeout ................................... 5000
connections ⇁ sqlite ⇁ synchronous .................................. NORMAL
要点:
- 库文件
storage/bar-assistant/database.ba3.sqlite位于持久卷内(compose 篇的bar_data卷),备份卷即备份库; journal_mode=wal+busy_timeout=5000:并发写友好;DB_FOREIGN_KEYS=true对应foreign_key_constraints;- 官方同时预置
mysql/mariadb/pgsql连接段(实测config:show database可见,默认 host 127.0.0.1、utf8mb4、pgsql 默认 sslmode=prefer)。多用户高并发或 NAS 上想统一 DB 服务时设DB_CONNECTION=pgsql+DB_HOST/DB_PORT/DB_DATABASE/DB_USERNAME/DB_PASSWORD即可切换,无需改代码。
五、Redis(缓存/会话/队列/指标共用)
config:show database 的 redis 段实测(注意:Redis 定义挂在 database 配置下):
redis ⇁ client .................................................... phpredis
redis ⇁ options ⇁ prefix ........................... bar_assistant_database_
redis ⇁ default ⇁ host ............................................... redis
redis ⇁ default ⇁ port ................................................ 6379
redis ⇁ default ⇁ database ............................................... 0
redis ⇁ cache ⇁ database ................................................. 1
redis ⇁ horizon ⇁ options ⇁ prefix .................. bar_assistant_horizon:
| 变量 | 默认 | 说明 |
|---|---|---|
REDIS_HOST | redis | 主机名/地址;compose 内用服务名 redis |
REDIS_PORT | 6379 | |
REDIS_PASSWORD | null | 空密码时留 null |
CACHE_DRIVER | redis | 可 file;about 实测生效值 redis |
SESSION_DRIVER | redis | 可 file;会话库 db 0,缓存库 db 1,key 前缀 bar_assistant_database_ |
SESSION_LIFETIME | 120 | 分钟 |
QUEUE_CONNECTION | sync | 默认同步队列;sync-datapack、图片抓取等重任务如需后台化可换 redis 队列并起 php artisan horizon(about 实测 Broadcasting=null、Queue=sync) |
六、搜索(SCOUT_* / MEILISEARCH_*)——非 Elasticsearch
全文检索用 Meilisearch(Laravel Scout 抽象层)。config:show scout 实测:
scout ......................................................................
driver .......................................................... meilisearch
queue ................................................................. true
chunk ⇁ searchable ..................................................... 500
meilisearch ⇁ host ................................. http://meilisearch:7700
meilisearch ⇁ key ...................... masterKey-make-it-long-for-security
| 变量 | 说明 |
|---|---|
SCOUT_DRIVER | 默认 meilisearch;官方同时支持 typesense(config:show 可见完整 typesense 节点段,默认端口 8108)与 algolia |
MEILISEARCH_HOST | 服务内部地址(如 http://meilisearch:7700),与前端用的浏览器可达地址区分 |
MEILISEARCH_KEY | API key;直填 master key 可用但不安全,官方提供 php artisan bar:setup-meilisearch 生成受限 scoped key 并自动回写 ENV(CLI 篇详述) |
索引结构实测(scout 配置内建,sync-datapack 后自动创建 cocktails/ingredients 两索引):Cocktail 可过滤 tags/bar_id、可排序 name/date、可搜 name/tags/description/date/short_ingredients;Ingredient 可过滤 category/origin/bar_id。scout.queue=true 表示索引更新走队列异步。
七、吧台业务开关(bar-assistant 配置域)
php artisan config:show bar-assistant 实测全量(本例部署值):
bar-assistant ..............................................................
version ............................................................ v6.10.1
allow_registration .................................................... true
max_default_bars ......................................................... 1
max_premium_bars ........................................................ 10
mail_require_confirmation ............................................ false
mail_reset_url ........................................................ null
mail_confirm_url ...................................................... null
enable_billing ....................................................... false
prices ⇁ 0 .................................................................
metrics ⇁ enabled ..................................................... true
metrics ⇁ allowed_ips ⇁ 0 ....................................... 10.89.60.1
enable_feeds ......................................................... false
enable_password_login ................................................. true
scraping_client ⇁ proxy ............................................... null
scraping_client ⇁ cert ................................................ null
ai ⇁ provider ......................................................... null
ai ⇁ model ............................................................ null
ai ⇁ provider_image ................................................... null
ai ⇁ model_image ...................................................... null
ai ⇁ timeout ........................................................... 120
ai ⇁ image_supports_reference ......................................... true
逐项:
| ENV 变量 | config 键 | 默认 | 说明 |
|---|---|---|---|
ALLOW_REGISTRATION | allow_registration | true | 关掉可禁自助注册(配合先建管理员);公网裸奔实例建议 false |
| — | max_default_bars / max_premium_bars | 1 / 10 | 免费/付费用户可建吧台数(自托管通常用不到) |
MAIL_REQUIRE_CONFIRMATION | mail_require_confirmation | false | true 时新注册须邮箱验证后才能登录 |
MAIL_RESET_URL / MAIL_CONFIRM_URL | 同名 | null | 邮件里链接的前端地址,部署了 Salt Rim 应指向前端 URL |
ENABLE_PASSWORD_LOGIN | enable_password_login | true | 上 SSO 后可关密码登录 |
| — | enable_feeds | false | RSS 输出开关 |
METRICS_ENABLED | metrics.enabled | false | 开 /api/metrics Prometheus 端点 |
METRICS_ALLOWED_IPS | metrics.allowed_ips | 空 | 逗号分隔 IP 白名单;只按请求源 IP 精确匹配,本机经 IPv6 回环访问会被拒(日志 Denied IP address ::1 metrics endpoint access 实录见部署篇) |
八、配方抓取与图片(SCRAPING_*)
按 URL 导入第三方配方站与抓取配图的 HTTP 客户端配置:
| 变量 | 说明 |
|---|---|
SCRAPING_HTTP_PROXY | 抓取走代理(如 http://192.168.1.62:7897),服务器出网受限时关键 |
SCRAPING_CLIENT_CERT | mTLS 客户端证书路径 |
实测 config:show bar-assistant 中对应 scraping_client ⇁ proxy/cert,默认 null。抓来的图片落 storage/bar-assistant 卷的 uploads 目录(about 实测 public/uploads LINKED)。AI 生成图片另见下节。
九、AI 扩展(GEN_AI_*)
四个变量驱动 Laravel AI SDK(实测 config:show ai 可见 openai/anthropic/ollama/gemini/groq/openai-compatible 等 17 家 provider 全预置,各 key 默认 null):
| 变量 | 说明 |
|---|---|
GEN_AI_PROVIDER | 文本 provider 标识(openai、anthropic、ollama…),留空即禁用(实测 server/version 返回 is_ai_enabled:false) |
GEN_AI_MODEL | 指定模型;openai-compatible 类 provider 必填 |
GEN_AI_IMAGE_PROVIDER / GEN_AI_IMAGE_MODEL | 配图生成(返回 is_ai_image_enabled) |
| — | ai.timeout 默认 120 秒;ai.image_supports_reference 默认 true(参考图生图) |
内网闭环玩法:GEN_AI_PROVIDER=ollama + 宿主 Ollama 服务,key 留空(实测 ollama 默认 url http://localhost:11434)。
十、价格、货币与计费(CASHIER_* / BILLING_*)
原料价格与鸡尾酒成本核算是产品功能(价格登记走 API,货币随用户设置);.env 的计费段是给官方 SaaS 化收款用的:
| 变量 | 说明 |
|---|---|
ENABLE_BILLING | 收款开关,自托管保持 false(实测 enable_billing=false) |
CASHIER_CURRENCY | 货币代码(Laravel Cashier 标准项,如 eur/usd/cny) |
BILLING_PRODUCT_PRICES / MAX_USER_BARS | 定价与吧台配额 |
PADDLE_* | Paddle 收款通道参数,自托管无需 |
十一、邮件(MAIL_*)
SMTP 六件套(MAIL_MAILER/MAIL_HOST/MAIL_PORT/MAIL_USERNAME/MAIL_PASSWORD/MAIL_ENCRYPTION)+ MAIL_FROM_ADDRESS/MAIL_FROM_NAME。不配 MAILER 时 about 实测驱动仍显示 smtp 但发送会失败;配好后用 php artisan bar:test-email you@example.com 验证(CLI 篇)。
十二、日志(LOG_*)
| 变量 | 默认 | 说明 |
|---|---|---|
LOG_CHANNEL | stderr | 官方容器镜像推荐值:日志走标准错误,由日志驱动收集;实测 API 报错(如导出 500 的 TypeError ... ExportController.php:102)完整出现在 stderr 流 |
LOG_LEVEL | warning | 排障期可临时 debug |
十三、改配置的标准动作
# 1. 改 .env 或 compose environment 段
# 2. 清配置缓存(生产镜像默认 Config=CACHED)
php artisan config:clear
# 3. 重启应用(容器化即 restart 服务)
# 4. 复核生效值
php artisan config:show bar-assistant
php artisan about
十四、生产推荐基线
| 项 | 建议 |
|---|---|
| APP_KEY | 首次部署生成并离线备份 |
| ALLOW_REGISTRATION | 公网实例 false;家庭多人用 true+MAIL_REQUIRE_CONFIRMATION=true |
| MEILI_MASTER_KEY | ≥32 位随机;正式环境跑 bar:setup-meilisearch 换 scoped key |
| METRICS_ALLOWED_IPS | 只写 Prometheus 抓取源真实 IP |
| DB | 单机 SQLite 足够;多实例/重并发切 pgsql |
| QUEUE_CONNECTION | 上 redis + horizon(图片抓取/AI 变重时) |
| SCOUT_DRIVER | 保留 meilisearch;无搜索需求可设 null 省一个服务(代价:前端搜索不可用) |
十五、系列导航
- 选型:《Bar Assistant 介绍与选型指南》
- 部署:《Bar Assistant Docker Compose 部署指南》
- 命令实操:《Bar Assistant 6.10.1 常用 CLI/API 命令详解》