mirror of
https://github.com/MemeMeow-Studio/MemeMeow.git
synced 2026-10-16 20:31:33 +08:00
134 lines
6.7 KiB
Bash
134 lines
6.7 KiB
Bash
# MemeMeow 服务端配置。复制为 .env 后填写,密钥不会返回给前端。
|
||
# Compose 运行身份:start.sh 未显式设置时自动采用当前服务用户;直接 docker compose
|
||
# 必须手工填写实际的非 root UID/GID,不能使用 0 或空值。
|
||
MEMEMEOW_RUNTIME_UID=
|
||
MEMEMEOW_RUNTIME_GID=
|
||
|
||
# Agent 诊断文件每个达到指定容量时轮转,保留 14 天。
|
||
MEMEMEOW_AGENT_DIAGNOSTICS_ROTATION=200 MB
|
||
|
||
EMBEDDING_API_KEY=
|
||
EMBEDDING_BASE_URL=https://api.siliconflow.cn/v1
|
||
EMBEDDING_MODEL=BAAI/bge-m3
|
||
LLM_ENHANCE_MODEL=
|
||
|
||
# 独立图片命名进程,直接调用图片模型。
|
||
MEMEMEOW_AUTO_RENAME_BASE_URL=
|
||
MEMEMEOW_AUTO_RENAME_API_KEY=
|
||
MEMEMEOW_AUTO_RENAME_MODEL=mememeow/auto-rename
|
||
MEMEMEOW_AUTO_RENAME_POOL=default
|
||
MEMEMEOW_AUTO_RENAME_CONCURRENCY=10
|
||
MEMEMEOW_AUTO_RENAME_INTERVAL_SECONDS=30
|
||
MEMEMEOW_AUTO_RENAME_TIMEOUT_SECONDS=90
|
||
|
||
# 本地视觉检索:活动模型为官方 DINOv2 ViT-B/14。源码固定为官方提交,权重必须公开下载并只读挂载。
|
||
MEMEMEOW_VISUAL_MODEL=dinov2_vitb14
|
||
MEMEMEOW_VISUAL_DIMENSIONS=768
|
||
MEMEMEOW_VISUAL_PREPROCESS_VERSION=dinov2_vitb14-rgb224-first-frame-v1
|
||
# Compose 运行时会改用容器内固定路径 /opt/dinov2 和 /models;以下路径供宿主机夹具使用。
|
||
MEMEMEOW_VISUAL_MODEL_REPO=./data/dinov2
|
||
MEMEMEOW_VISUAL_WEIGHTS_PATH=./data/models/dinov2_vitb14_pretrain.pth
|
||
MEMEMEOW_VISUAL_WEIGHTS_DIR=./data/models
|
||
MEMEMEOW_VISUAL_WEIGHTS_SHA256=0b8b82f85de91b424aded121c7e1dcc2b7bc6d0adeea651bf73a13307fad8c73
|
||
# Compose 会覆盖为 mememeow-visual:8276;不要在容器内使用 127.0.0.1 访问视觉服务。
|
||
MEMEMEOW_VISUAL_INTERNAL_URL=http://127.0.0.1:8276/internal/visual-embedding
|
||
MEMEMEOW_VISUAL_HEALTH_URL=http://127.0.0.1:8276/health
|
||
MEMEMEOW_VISUAL_INTERNAL_TOKEN=
|
||
MEMEMEOW_VISUAL_CPU_THREADS=4
|
||
MEMEMEOW_VISUAL_CPU_INTEROP_THREADS=1
|
||
MEMEMEOW_VISUAL_CONCURRENCY=1
|
||
MEMEMEOW_VISUAL_MAX_PIXELS=25000000
|
||
MEMEMEOW_VISUAL_REQUEST_TIMEOUT_SECONDS=120
|
||
|
||
# 语境研究由共享 Agent executor 容器执行;宿主 OpenCode 可执行文件仅用于显式 host 回滚。
|
||
MEMEMEOW_OPENCODE_EXECUTABLE=opencode
|
||
MEMEMEOW_OPENCODE_BASE_URL=
|
||
MEMEMEOW_OPENCODE_API_KEY=
|
||
MEMEMEOW_AGENT_RUNTIME_MODE=executor
|
||
# Compose 内部服务地址由 docker-compose.yml 固定为 mememeow-agent-runtime:8277,启动脚本会覆盖此空值。
|
||
MEMEMEOW_AGENT_EXECUTOR_URL=
|
||
# Compose 会在 Docker named volume 中首次启动时生成随机 token;不要把 token 写入仓库。
|
||
# 仅显式 host 回滚模式需要手动取消注释并填入随机非空值。
|
||
# MEMEMEOW_AGENT_EXECUTOR_TOKEN=
|
||
# Compose 内部路径由 docker-compose.yml 注入,通常无需设置。
|
||
# MEMEMEOW_AGENT_EXECUTOR_TOKEN_FILE=
|
||
MEMEMEOW_AGENT_EXECUTOR_REQUEST_TIMEOUT_SECONDS=1810
|
||
MEMEMEOW_AGENT_EXECUTOR_MAX_TIMEOUT_SECONDS=1800
|
||
# 外部 workspace selector 的独立 capability 签名材料;不与 API/数据库密钥复用。
|
||
MEMEMEOW_WORKSPACE_CAPABILITY_KEY=
|
||
MEMEMEOW_OPENCODE_WORKSPACE_CAPABILITY_TTL_SECONDS=300
|
||
# OpenCode 明确 session 的自动续跑默认关闭;开启前请确认 provider 与副作用边界。
|
||
MEMEMEOW_AGENT_RESUME_ENABLED=false
|
||
MEMEMEOW_AGENT_RESUME_MAX_ATTEMPTS=2
|
||
MEMEMEOW_AGENT_RESUME_BACKOFF_SECONDS=2
|
||
MEMEMEOW_AGENT_RESUME_MAX_BACKOFF_SECONDS=60
|
||
MEMEMEOW_AGENT_RESUME_TIMEOUT_SECONDS=900
|
||
# Agent callback 根 secret;至少 16 字节,仅 API 读取并用于签发当前 Task 短期 token。
|
||
# 留空时 callback 保持不可用,不会回退到无认证或随机运行时凭据。
|
||
MEMEMEOW_AGENT_CALLBACK_SECRET=
|
||
# 可选旧 key 验证窗口,格式为 kid=secret,kid=secret;不参与新 token 签发。
|
||
MEMEMEOW_AGENT_CALLBACK_VERIFICATION_KEYS=
|
||
MEMEMEOW_AGENT_REVERSE_IMAGE_INTERNAL_URL=
|
||
# 模型由命令行 --model 传递;当前通用配置只注册此模型,研究任务固定使用 max 推理变体。
|
||
MEMEMEOW_OPENCODE_MODEL=mememeow/gpt-5.6-luna
|
||
MEMEMEOW_OPENCODE_RUNTIME_ROOT=./data/opencode
|
||
# 外部 provider 的受控 selector 根;目录由宿主适配层预装配。
|
||
MEMEMEOW_OPENCODE_WORKSPACE_ROOT=./data/opencode/workspaces
|
||
MEMEMEOW_OPENCODE_TIMEOUT_SECONDS=1800
|
||
# Agent lane 全局运行并发;必须为正整数,默认 1,修改后重启服务生效。队列不设数量门禁。
|
||
MEMEMEOW_OPENCODE_CONCURRENCY=1
|
||
# 单个持久 scope 的 Agent 同时运行上限;不得超过全局运行并发,由 PostgreSQL 公平 claim 强制,默认 1。
|
||
MEMEMEOW_AGENT_SCOPE_CONCURRENCY=1
|
||
# 设置页更新凭据;留空时设置 API 只读。
|
||
MEMEMEOW_SETTINGS_ADMIN_TOKEN=
|
||
# 指向预装 OpenCode 插件依赖;留空时使用项目根目录 .opencode/node_modules。
|
||
MEMEMEOW_OPENCODE_NODE_MODULES=./.opencode/node_modules
|
||
# Agent 结果文件协议:任务目录位于 data/opencode/task-results/<task_id>/。
|
||
MEMEMEOW_AGENT_RESULT_MAX_BYTES=1048576
|
||
MEMEMEOW_AGENT_RESULT_RETENTION_DAYS=14
|
||
MEMEMEOW_AGENT_RESULT_MAX_TASKS=500
|
||
|
||
# 联网图片检索默认使用 Google Vision Web Detection;只在明确设置为 serpapi 时读取 SerpApi。
|
||
MEMEMEOW_REVERSE_IMAGE_PROVIDER=google_vision
|
||
GOOGLE_CLOUD_PROJECT=
|
||
# 可选。留空时使用 Google ADC;填写时只由服务端读取,不能传给 Agent。
|
||
GOOGLE_APPLICATION_CREDENTIALS=
|
||
SERPAPI_API_KEY=
|
||
MEMEMEOW_REVERSE_IMAGE_CACHE_ROOT=./data/reverse_image_cache/web_detection
|
||
|
||
MEMEMEOW_DATA_ROOT=./data
|
||
MEMEMEOW_IMAGE_ROOT=./data/images
|
||
# 图片 bind mount 的宿主路径;测试或非仓库部署可改为受控绝对路径。
|
||
MEMEMEOW_IMAGE_ROOT_HOST=./data/images
|
||
MEMEMEOW_MAX_UPLOAD_SIZE=20971520
|
||
# GIF 按实际内容识别,原始输入最多 100MB,超过 10MB 自动压缩。
|
||
# 服务端强制每请求最多 20 个文件;并发值仅供客户端调度提示,服务端不以此字段限制在途请求。
|
||
# 总请求预算留空表示 disabled。
|
||
MEMEMEOW_MAX_FILES_PER_REQUEST=20
|
||
MEMEMEOW_MAX_CONCURRENT_UPLOAD_REQUESTS=2
|
||
MEMEMEOW_MAX_REQUEST_BYTES=134217728
|
||
|
||
# PostgreSQL 16 + pgvector(宿主机 database.sh 使用,固定监听回环地址 5434;Compose API 会覆盖为 postgres:5432)。
|
||
POSTGRES_DB=mememeow
|
||
POSTGRES_USER=mememeow
|
||
POSTGRES_PASSWORD=mememeow
|
||
MEMEMEOW_DATABASE_URL=postgresql+psycopg://mememeow:mememeow@127.0.0.1:5434/mememeow
|
||
# Adminer 数据库查看器的宿主机回环端口。
|
||
MEMEMEOW_DB_VIEWER_PORT=8080
|
||
# Adminer 主镜像可按部署环境覆盖;Docker Hub 不可达时,启动脚本会尝试备用镜像。
|
||
MEMEMEOW_DB_VIEWER_IMAGE=adminer:4
|
||
MEMEMEOW_DATABASE_POOL_SIZE=5
|
||
MEMEMEOW_DATABASE_MAX_OVERFLOW=10
|
||
MEMEMEOW_DATABASE_POOL_TIMEOUT=10
|
||
MEMEMEOW_DATABASE_POOL_RECYCLE=1800
|
||
MEMEMEOW_EMBEDDING_DIMENSIONS=1024
|
||
MEMEMEOW_WORKER_LEASE_SECONDS=120
|
||
MEMEMEOW_WORKER_HEARTBEAT_SECONDS=30
|
||
MEMEMEOW_WORKER_MAX_ATTEMPTS=3
|
||
|
||
MEMEMEOW_PROTECTED_MODE=false
|
||
MEMEMEOW_ALLOWED_ENDPOINTS=/,/health,/search,/config,/backend/settings,/tasks,/generate-cache,/images,/media
|
||
MEMEMEOW_RATE_LIMIT_ENABLED=false
|
||
MEMEMEOW_RATE_LIMIT_REQUESTS=60
|
||
MEMEMEOW_RATE_LIMIT_WINDOW=60
|